При подготовке регламентированной отчетности 6-НДФЛ (в редакции, действующей с 2021 года) в устаревших, но все еще поддерживаемых конфигурациях, таких как «1С:Зарплата и управление персоналом 2.5» и «1С:Управление производственным предприятием 1.3», бухгалтеры часто сталкиваются с критической ошибкой. В Разделе 2 по строке 140 («Сумма налога исчисленная») данные могут рассчитываться некорректно: суммы по отдельным сотрудникам удваиваются или даже утраиваются.
Рассмотрим подробнее, почему возникает эта ситуация, как проанализировать данные и каким образом внести исправления в программный код, чтобы отчет формировался правильно.
Проанализируем механику работы отчета. При заполнении строки 140 система обращается к регистрам накопления, в которых хранится информация об исчисленном налоге. Однако, помимо самих сумм налога, алгоритм заполнения учитывает статус налогоплательщика (например, является ли сотрудник ВКС — высококвалифицированным специалистом). Для этого программа программно формирует сложный запрос, который соединяет временную таблицу с суммами налогов и временную таблицу со сведениями о статусах сотрудников.
Ошибка кроется в отсутствии жесткого условия связи по полю КатегорияДохода. Если у сотрудника в одном периоде есть доходы, относящиеся к разным категориям (например, «Оплата труда» и «Прочие доходы»), или если в регистры ошибочно попали дублирующие записи по статусам, происходит так называемое «кросс-соединение» (декартово произведение строк). В результате одна и та же сумма налога суммируется в отчете несколько раз, хотя в справках 2-НДФЛ и расчетных листках цифры отображаются верно.
Представим, что у сотрудника исчислен налог в размере 13 000 рублей. В системе зафиксировано, что он имеет статус ВКС. Если в запросе, который собирает данные для 6-НДФЛ, соединение таблиц происходит только по идентификатору физического лица, а категорий дохода в периоде было две, то программа «увидит» две строки там, где должна быть одна, и в строку 140 попадет уже 26 000 рублей.
Для исправления этой системной ошибки нам потребуется внести изменения в программный код общего модуля. Рассмотрим действия программиста по шагам:
ЗаполнениеРегламентированнойОтчетности.| ПО Налоги.ФизЛицо = СведенияВКС.ФизЛицо. В типовой конфигурации ЗУП 2.5.175.1 это примерно 2678-я строка, в УПП 1.3.183.1 номер строки может незначительно отличаться.Проанализируем, как должен выглядеть исправленный фрагмент кода:
// Было в типовой конфигурации:
| ПО Налоги.ФизЛицо = СведенияВКС.ФизЛицо
// Необходимо изменить на:
| ПО Налоги.ФизЛицо = СведенияВКС.ФизЛицо
| И Налоги.КатегорияДохода = СведенияВКС.КатегорияДохода
Добавление строки | И Налоги.КатегорияДохода = СведенияВКС.КатегорияДохода гарантирует, что данные будут сопоставляться корректно, исключая дублирование строк в выборке.
Данная проблема является унифицированной для программ на платформе «1С:Предприятие 8.2» (и 8.3 в режиме совместимости), так как код формирования регламентированной отчетности в них часто копировался между решениями. Проверьте следующие релизы, если вы работаете в них:
После того как вы внесли изменения в код и сохранили конфигурацию, выполните следующие действия для проверки корректности формирования отчета:
Важный момент: Если в вашей базе нет сотрудников со статусом ВКС, но ошибка все равно воспроизводится, это может означать наличие «мусорных» записей в регистре сведений Статус физических лиц как налогоплательщиков. Исправление кода, которое мы рассмотрели, является универсальным и самым надежным способом, так как оно защищает отчет от некорректных соединений данных в любом случае.
Таким образом, мы совместно разобрали техническую причину ошибки и применили программный метод ее устранения. Это позволит вам формировать корректную отчетность в контролирующие органы даже в тех конфигурациях, поддержка которых постепенно сокращается.