Ситуация, когда при расчете зарплаты в программе 1С:Зарплата и кадры государственного учреждения (ЗГУ) или 1С:Зарплата и управление персоналом (ЗУП) возникают нереально большие, «космические» суммы НДФЛ, является одной из самых острых проблем последних лет. Особенно часто это происходит после обновлений на релизы ветки 3.1.23 и выше, когда вступили в силу изменения в законодательстве по учету налога по дате фактической выплаты. В этой статье мы подробно разберем, почему программа ведет себя подобным образом и как пошагово навести порядок в учете.
С 2023 года учет НДФЛ в 1С кардинально изменился. Если раньше налог был жестко привязан к месяцу, за который начислена зарплата, то теперь он привязан к дате выплаты. Рассмотрим ситуацию: если в документе НачислениеЗарплатыИВзносов указана планируемая дата выплаты 5-е число, а фактически ведомость оформляется 6-м числом, программа может посчитать это за разные налоговые периоды или интервалы. В результате при очередном расчете 1С пытается «сторнировать» старый налог и начислить новый, что в интерфейсе выглядит как нагромождение огромных сумм с плюсом и минусом.
Проанализируем вкладку НДФЛ в документе начисления. Если вы видите там множество строк по одному сотруднику, где суммы перекрывают друг друга, значит, программа пытается исправить ошибки прошлых периодов. Основная особенность ЗГУ заключается в том, что в начислении зарплаты на вкладке НДФЛ часто отражается налог, который фактически был удержан в предыдущих ведомостях. Если в цепочке Начисление -> Ведомость произошел сбой дат, остатки будут «доезжать» в текущий документ начисления.
В ЗГУ учет ведется в разрезе дополнительных аналитик, таких как СтатьяФинансирования (ИФО), Подразделение и КБК. Это самая частая причина «разбегающихся» сумм. Программа контролирует остатки НДФЛ по каждой статье отдельно. Если в прошлом месяце налог был начислен по «Статье А», а выплачен (через ведомость) по «Статье Б», то в регистре возникнет перекос:
В следующем месяце 1С увидит эти незакрытые остатки и попытается их «схлопнуть» автоматически. В документе появятся строки с огромным плюсом по одной статье и огромным минусом по другой. Итоговая сумма налога при этом может быть верной, но бухгалтер видит хаос в расшифровке и пугается огромных оборотов.
Выясним причину, почему ручные правки в НДФЛ только усугубляют ситуацию. Как только бухгалтер вручную корректирует сумму налога в документе НачислениеЗарплатыИВзносов или в Ведомости, он разрывает автоматическую связь между начисленным и удержанным налогом. Алгоритм 1С работает нарастающим итогом с начала года. Если вы поправили налог в марте, программа в апреле увидит, что «расчетное значение» отличается от «зафиксированного», и вбросит разницу в новый документ. Это создает эффект «качелей»: чем больше вы правите руками, тем сильнее программа будет пытаться вернуть расчет к своей логике в следующем месяце.
Рассмотрим, с чего нужно начать проверку, если вы столкнулись с этой проблемой. Не торопитесь сразу исправлять суммы в текущем документе — это не поможет в долгосрочной перспективе.
РасчетыНалогоплательщиковСБюджетомПоНДФЛ. Если в нем есть записи с пустыми подразделениями или неверными статьями финансирования, именно они дают «хвосты».ОперацияУчетаНДФЛ. В нем можно вручную «перебросить» суммы с одной статьи на другую, чтобы закрыть остатки в регистрах.Иногда проблема кроется в техническом баге программы, когда на вкладке НДФЛ появляются записи по сотрудникам, которых вообще нет в текущем документе начисления. Это происходит из-за механизма дозаполнения. Программно такие строки можно найти через консоль запросов или обработку «Редактирование регистрации доходов и налогов».
Разберем пример кода, который может использоваться разработчиками для диагностики подобных «фантомных» записей в регистрах (чисто в ознакомительных целях для понимания структуры данных):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НДФЛ.Сотрудник,
| НДФЛ.Регистратор,
| НДФЛ.Сумма,
| НДФЛ.СтатьяФинансирования
|ИЗ
| РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ КАК НДФЛ
|ГДЕ
| НДФЛ.Сумма > 100000 ИЛИ НДФЛ.Сумма < -100000";
Результат = Запрос.Выполнить();
Если запрос выдает строки с аномальными суммами, нужно детально изучить регистратор — документ, который сделал такое движение. Часто оказывается, что это старое исправление больничного или перерасчет отпуска, который «завис» в системе.
Чтобы «спрыгнуть с налоговых качелей», придерживайтесь следующих правил:
НачисленииЗарплаты должна совпадать (или быть максимально близкой) с фактической датой Ведомости.Подводя итог, скажем: огромный НДФЛ в 1С:ЗГУ — это не случайный сбой, а результат накопленных ошибок в аналитических разрезах. Исправив один раз последовательность документов и выровняв остатки по статьям финансирования, вы избавитесь от этой проблемы навсегда.