Как исправить массовый пересчет и ошибки НДФЛ после обновления на релиз ЗУП 3.1.4.120?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет
← На главную

Обновление конфигурации «Зарплата и управление персоналом» до версии 3.1.4.120 стало настоящим испытанием для многих бухгалтеров и технических специалистов. Основная проблема, получившая название «бешеный НДФЛ», выражается в том, что программа начинает массово пересчитывать налог за все прошлые месяцы года во всех документах начисления (отпусках, больничных, начислении зарплаты). В некоторых случаях суммы исчисленного налога достигают астрономических значений (триллионов рублей), а в расчетных листках появляются бесконечные строки с плюсовыми и минусовыми корректировками.

В этой статье мы подробно разберем, почему это произошло, как функционирует новая архитектура учета НДФЛ и какими способами можно привести учет в порядок, не дожидаясь исправительных релизов.

Выясним причину: почему НДФЛ «сошел с ума»?

Рассмотрим архитектурное изменение, которое внедрили разработчики 1С в версии 3.1.4. В программу был введен новый обязательный реквизит — Категория дохода. Ранее категория (оплата труда, прочие доходы и т.д.) определялась алгоритмами «на лету» на основании кода дохода. Теперь же это жесткое измерение в регистрах накопления СведенияОДоходахНДФЛ и РасчетыНалогоплательщиковСБюджетомПоНДФЛ.

Проанализируем ситуацию: при обновлении запускается обработчик, который должен проставить категорию во всех записях за текущий год. Однако из-за ошибки в алгоритме пакетной обработки (так называемая «ошибка первой тысячи») система корректно обрабатывает только первую порцию данных, оставляя остальные записи пустыми. Когда вы открываете любой документ текущего месяца, движок расчета НДФЛ видит разницу между записями в регистрах (где-то категория есть, а где-то нет) и воспринимает это как необходимость пересчета. Программа пытается «сторнировать» доход без категории и «начислить» его заново с категорией, порождая огромные таблицы корректировок.

Способ 1. Массовое перепроведение документов «Операция учета НДФЛ»

Если в вашей организации используются документы Операция учета НДФЛ (например, для ввода остатков или корректировок), начнем исправление с них. Выяснено, что после обновления движения этих документов могут «разъезжаться»: в документе указан один сотрудник, а в регистры записываются данные по другим.

Рассмотрим порядок действий:

  1. Откройте список документов Операция учета НДФЛ.
  2. Выделите все документы за текущий налоговый период.
  3. Выполните простое перепроведение. Это заставит систему переформировать движения с учетом новых реквизитов категории дохода. В большинстве случаев «краснота» в отчетах после этого уходит.

Способ 2. Корректировка реквизитов в регистрах и документах начисления

Проанализируем работу регистра РасчетыНалогоплательщиковСБюджетомПоНДФЛ. Опытным путем установлено, что для корректного расчета реквизит Дата получения дохода фиксирована должен иметь определенные значения. Разберем по шагам:

Для записей с категорией Оплата труда этот реквизит должен иметь значение Истина (ДА). Для остальных категорий (отпуска, больничные) — Ложь (НЕТ). При проведении документов система пытается заполнить этот признак автоматически. Посмотрим на фрагмент логики, который заложен в системе:


НоваяСтрока.ДатаПолученияДоходаФиксирована = 
    НоваяСтрока.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ОплатаТруда 
    Или НоваяСтрока.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ДоходВНатуральнойФормеОтТрудовойДеятельности 
    Или НоваяСтрока.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеНатуральныеДоходы;

Если автоматическое перепроведение не помогает, необходимо воспользоваться обработкой для заполнения пустых значений КатегорияДохода в регистрах. Важно, чтобы категория в регистре СведенияОДоходахНДФЛ полностью совпадала с категорией в РасчетыНалогоплательщиковСБюджетомПоНДФЛ.

Способ 3. Исправление алгоритма распределения налога в программном коде

Если вы имеете доступ к конфигуратору, можно внести изменения в общий модуль УчетНДФЛ, чтобы стабилизировать расчет. Выяснено, что в процедуре РассчитатьНалогПоОсновнойСтавке сортировка таблицы физического лица работает некорректно для некоторых сотрудников.

Найдем строку: ВспомогательнаяТаблицаФизическогоЛица.Сортировать("МесяцНалоговогоПериода Убыв");

Попробуем дополнить сортировку, чтобы система более предсказуемо обрабатывала суммы налога: ВспомогательнаяТаблицаФизическогоЛица.Сортировать("МесяцНалоговогоПериода Убыв, НалогПоСтавке13 Убыв");

Это помогает избежать ситуаций, когда программа хаотично распределяет налог по разным датам получения дохода внутри одного месяца.

Способ 4. Работа с «Ведомостями на выплату»

Многие пользователи заметили, что в версии 3.1.4 документы Ведомость на выплату стали сами «начислять» НДФЛ. Разберем, почему это происходит. В ведомостях появилась Дата выплаты. Для межрасчетных доходов (отпуска, больничные) налог теперь окончательно фиксируется в момент выплаты. Если дата реальной выплаты отличается от той, что была указана в документе Отпуск, ведомость делает корректировку.

Чтобы избежать «праздника» лишних начислений в ведомостях в переходный период:

  1. Убедитесь, что во всех документах Отпуск и Больничный лист указана актуальная планируемая дата выплаты.
  2. Если ведомость упорно тянет хвосты за июль или август, попробуйте воспользоваться обработкой для обнуления колонки НДФЛ в ведомостях (как временная мера для выплаты зарплаты).
  3. Проверьте, чтобы в документах начисления на вкладке «НДФЛ» категория дохода была указана корректно (например, «Прочие доходы от трудовой деятельности» для отпусков).

Способ 5. Возврат (даунгрейд) на стабильную версию 3.1.3

Если масштаб бедствия слишком велик (тысячи сотрудников и триллионные суммы), а выплаты нужно делать «вчера», рассмотрим вариант отката на релиз 3.1.3.274.

Важно: этот метод требует осторожности и предварительного бэкапа!

  1. Восстановите старую конфигурацию 3.1.3 из архива или файла .cf.
  2. Снимите рабочую базу с поддержки и загрузите конфигурацию 3.1.3 через «Сравнение/объединение» или «Загрузить конфигурацию из файла».
  3. После возврата на старый движок все документы, созданные или измененные в 3.1.4, нужно будет распровести и пересчитать заново.
  4. Внимание: при откате могут возникнуть ошибки в расчете исполнительных листов, так как в 3.1.4 изменились механизмы учета удержаний. Проверьте расчет алиментов после отката!

Рекомендации по исправлению данных

Проанализируем опыт коллег, успешно победивших проблему без отката. Основной ключ к успеху — последовательность. Нельзя просто перепровести документы за декабрь, если в январе-феврале «дыры» в категориях доходов.

Помните, что фирма 1С признала данную проблему под кодом 10188179 и полностью исправила алгоритмы обновления только в ветке 3.1.5. Если вы еще не обновились на 3.1.4.120 — настоятельно рекомендуем пропустить этот релиз и переходить сразу на более поздние, стабильные версии.

← На главную