При работе в зарплатных решениях для государственного и коммерческого сектора после установки очередного релиза конфигурации пользователи и расчетчики могут столкнуться с неприятной ситуацией: документ Начисление зарплаты сотрудникам организаций начинает формировать некорректные движения. В регистре накопления НДФЛ Сведения о доходах сумма начисления по окладу удваивается. Проанализируем причины этой ошибки и разберем варианты ее устранения.
Выясним причину такого поведения конфигурации. Задвоение записей в регистре накопления НДФЛ Сведения о доходах чаще всего обусловлено следующими факторами:
СГРУППИРОВАТЬ ПО с агрегатной функцией СУММА(), сумма оклада умножается на число строк аналитики.Рассмотрим подробнее способы исправления данной ситуации в зависимости от доступности обновлений и прав доступа к коду конфигурации.
Разберем по шагам наиболее безопасный и штатный вариант решения проблемы, если она вызвана зарегистрированной ошибкой релиза:
Начисление зарплаты сотрудникам организаций и проверим записи в регистре накопления НДФЛ Сведения о доходах.Если обновление еще не вышло или его невозможно оперативно установить из-за пикового периода расчета зарплаты и отпусков, исправление можно внести непосредственно в код конфигурации (если она снята с полной поддержки). Разберем, как локализовать и устранить дефект:
Начисление зарплаты сотрудникам организаций либо общий модуль, отвечающий за проведение расчетов по НДФЛ.НДФЛСведенияОДоходах.Посмотрим на пример структуры запроса, исключающего дублирование записей:
ВЫБРАТЬ
ТаблицаНачислений.ФизЛицо КАК ФизЛицо,
ТаблицаНачислений.КодДоходаНДФЛ КАК КодДоходаНДФЛ,
ТаблицаНачислений.ПериодРегистрации КАК ПериодРегистрации,
ТаблицаНачислений.ДатаПолученияДохода КАК ДатаПолученияДохода,
СУММА(ТаблицаНачислений.Результат) КАК СуммаДохода
ИЗ
Документ.НачислениеЗарплатыСотрудникамОрганизаций.Начисления КАК ТаблицаНачислений
ГДЕ
ТаблицаНачислений.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
ТаблицаНачислений.ФизЛицо,
ТаблицаНачислений.КодДоходаНДФЛ,
ТаблицаНачислений.ПериодРегистрации,
ТаблицаНачислений.ДатаПолученияДохода
После сохранения изменений выполним перепроведение расчетных документов за текущий расчетный период.
Если конфигурация находится на поддержке без возможности изменения, а откат на архивную копию невозможен из-за большого объема внесенных расчетчиками данных, применим типовой инструмент корректировки учета:
Корректировка учета по НДФЛ, страховым взносам и ЕСН в расчетном периоде возникновения ошибки.Важно помнить, что включение ручной корректировки движений непосредственно в самом документе Начисление зарплаты сотрудникам организаций не рекомендуется: при любых последующих перерасчетах или отмене проведения ручные изменения будут утеряны либо заблокируют повторный расчет.
В экстренных случаях, когда требуется быстро устранить дубли без изменения типовой конфигурации и снятия документов с проведения, используем внешнюю обработку и объект НаборЗаписей:
НДФЛСведенияОДоходах с отбором по конкретному документу-регистратору.Посмотрим на пример программной перезаписи набора записей регистра:
Набор = РегистрыНакопления.НДФЛСведенияОДоходах.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(ДокументСсылка);
Набор.Прочитать();
ТаблицаДвижений = Набор.Выгрузить();
ТаблицаДвижений.Свернуть("ФизЛицо,Период,КодДоходаНДФЛ,СтатьяФинансирования,КОСГУ", "СуммаДохода");
Набор.Загрузить(ТаблицаДвижений);
Набор.Записать();
Разбор описанных методов позволяет выбрать оптимальный путь: дождаться и установить официальное обновление от разработчиков, исправить запрос выборки в модуле документа или устранить искажение налоговой базы штатными корректирующими документами.