Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Зарплата и управление персоналом 8]

Ошибки округления выплат в ЗУП 3.0

impuls
Пост №1
impuls
читатель
офлайн
Дата регистрации: 24.11.2005
Сообщений: 1798
Пост №1
 
09.09.2015 11:07

С недавнего времени (релиз ЗУП 3.0.23) при формировании ведомостей на выплату зарплаты в них учитываются и указываются в расшифровке прошлые месяцы, за которые есть несовпадения начислений и выплат. Если заполнение выплат производится без округления, проблем нет, но если выплаты необходимо округлять, то округляются по правилам округления для формирования выплаты не только начисления текущего месяца, но и остатки прошлых месяцев. В результате конечная сумма к выплате не округляется по правилу округления, а искажается, остатки предыдущих месяцев не "списываются" полностью, как если бы они не округлялись, а продолжают в последующем участвовать (в отдельных случаях в других суммах) в формировании выплат следующих месяцев, а в расшифровке появляется всё больше месяцев, которые участвуют в формировании выплаты, к тому же в расшифровке указываются месяцы с нулевыми (после округления) выплатами, что сильно затрудняет анализ реальных невыплат за прошлые расчетные периоды. В 1С сейчас большой напряг с количеством писем по ЗУП 3.0 и рассмотрение этого вопроса идёт уже больше месяца без конкретного результата.
Для тех, у кого данный вопрос актуален (выплаты через кассу) привожу временную заплатку в общем модуле ВзаиморасчетыССотрудникамиБазовый для устранения этого явления. Изменения касаются процедуры "ВедомостьЗарплатаКВыплатеРассчитатьСуммы", текст процедуры следует заменить на приведённый далее.

Код
Процедура ВедомостьЗарплатаКВыплатеРассчитатьСуммы(Ведомость, ЗарплатаКВыплате) Экспорт

    Перем Сотрудник, СтрокаСальдо;

    // Округление результатов
    Если ЗначениеЗаполнено(Ведомость.Округление) Тогда
        СпособОкругленияСсылка = Ведомость.Округление;
    Иначе
        СпособОкругленияСсылка = Справочники.СпособыОкругленияПриРасчетеЗарплаты.ПоУмолчанию();
    КонецЕсли;
    
      Если СпособОкругленияСсылка<>Справочники.СпособыОкругленияПриРасчетеЗарплаты.ПоУмолчанию() Тогда
                  
          СпособОкругления = СпособОкругленияСсылка.ПолучитьОбъект();
          
                  СальдоПрошлыхВыплат = Новый ТаблицаЗначений;
          СальдоПрошлыхВыплат.Колонки.Добавить("СтрокаЗарплатыСсылка");
          СальдоПрошлыхВыплат.Колонки.Добавить("Сальдо");
          
          ЗарплатаКВыплате.Сортировать("ФизическоеЛицо");
          
          Для Каждого СтрокаЗарплаты Из ЗарплатаКВыплате Цикл

      //        СтрокаЗарплаты.КВыплате = СпособОкругления.Округлить(СтрокаЗарплаты.КВыплате);
                  //соберём попутно сальдо невыплат прошлых периодов и уберём копейки
              Если Сотрудник = Неопределено Тогда
                  Сотрудник=СтрокаЗарплаты.ФизическоеЛицо;
                  СтрокаСальдо = СальдоПрошлыхВыплат.Добавить();
                  СтрокаСальдо.Сальдо = 0;
              ИначеЕсли    Сотрудник<>СтрокаЗарплаты.ФизическоеЛицо Тогда
                  Сотрудник=СтрокаЗарплаты.ФизическоеЛицо;
                  Если    СтрокаСальдо.СтрокаЗарплатыСсылка <> Неопределено Тогда
                      СтрокаСальдо = СальдоПрошлыхВыплат.Добавить(); 
                  КонецЕсли;
                  СтрокаСальдо.Сальдо = 0;
              КонецЕсли;
              
              Если СтрокаЗарплаты.ПериодВзаиморасчетов <> Ведомость.ПериодРегистрации Тогда
                  СтрокаСальдо.Сальдо = СтрокаСальдо.Сальдо + СтрокаЗарплаты.КВыплате;
              Иначе
                  Если СтрокаСальдо.СтрокаЗарплатыСсылка <> Неопределено Тогда
                      СтрокаСальдо.Сальдо = СтрокаСальдо.Сальдо + СтрокаЗарплаты.КВыплате;
                  Иначе
                      СтрокаСальдо.СтрокаЗарплатыСсылка =  СтрокаЗарплаты;
                  КонецЕсли;    
              КонецЕсли;

          КонецЦикла;

          Для Индекс=0 По СальдоПрошлыхВыплат.Количество()-1 Цикл
              СтрокаСальдо = СальдоПрошлыхВыплат.Получить(Индекс);
              Если СтрокаСальдо.СтрокаЗарплатыСсылка <> Неопределено Тогда
                  СтрокаЗарплаты = СтрокаСальдо.СтрокаЗарплатыСсылка;
                  СтрокаЗарплаты.КВыплате = СпособОкругления.Округлить(СтрокаЗарплаты.КВыплате + СтрокаСальдо.Сальдо) - СтрокаСальдо.Сальдо;
              КонецЕсли;
          КонецЦикла;
                  
            КонецЕсли;
    
КонецПроцедуры

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС
Предложения партнеров
Обучение пользователей продуктов 1С

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги
© ООО "1C" 2000-2018 г.