Почему не рассчитывается НДФЛ в авансе за март и апрель 2023 года в 1С:ЗУП 3.1 и как это исправить

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

В начале 2023 года пользователи программ 1С:Зарплата и управление персоналом 3.1 и 1С:Зарплата и кадры государственного учреждения 3.1 столкнулись с массовой проблемой: в документе Начисление за первую половину месяца перестал рассчитываться НДФЛ. У большинства сотрудников вкладка НДФЛ оставалась пустой, либо суммы налога были некорректными (заниженными или задвоенными). Ситуация осложнялась тем, что ошибки проявлялись в разных релизах (от 3.1.24.408 до 3.1.25.37) и часто зависели от того, когда была выплачена зарплата за предыдущий месяц.

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

Почему расчет аванса зависит от выплат февраля?

С 1 января 2023 года дата получения дохода в виде оплаты труда определяется как день фактической выплаты денег. Рассмотрим ситуацию марта: если зарплата за февраль выплачивается 3 марта, то для целей НДФЛ этот доход относится к марту. Программа при расчете аванса (например, 15–20 марта) анализирует все доходы и налоги, уже зафиксированные в мартовском налоговом периоде.

Из-за ошибок в алгоритмах релизов марта-апреля 2023 года наличие проведенных ведомостей за прошлый месяц блокировало расчет налога в текущем авансе. Программа ошибочно считала, что налоговая база или лимиты вычетов уже "исчерпаны" предыдущей выплатой, либо некорректно срабатывали фильтры по физическим лицам в запросах модуля расчета НДФЛ.

Способ 1. Временное распроведение ведомостей (Пользовательский метод)

Если вам необходимо срочно выплатить аванс, а НДФЛ не считается, воспользуйтесь проверенным обходным путем. Рассмотрим последовательность действий:

  1. Найдите и отмените проведение всех документов Ведомость на выплату зарплаты, которыми выплачивалась зарплата за предыдущий месяц в текущем (например, февральская зарплата в марте).
  2. Откройте документ Начисление за первую половину месяца и нажмите кнопку Заполнить. В 90% случаев НДФЛ появится.
  3. Проведите документ начисления аванса.
  4. Вернитесь к ведомостям за прошлый месяц и снова проведите их.

Важно: Этот метод не является системным решением, но позволяет быстро сформировать ведомости на аванс с корректными суммами к выплате.

Способ 2. Корректировка дат в межрасчетных документах

Выясним еще одну закономерность: расчет НДФЛ в авансе может "ломаться", если в этом же месяце есть документы Больничный лист или Отпуск, дата выплаты в которых установлена позже даты аванса (например, в день выплаты основной зарплаты).

Проанализируем настройки таких документов. Если в больничном стоит срок выплаты "С зарплатой", система может игнорировать НДФЛ в промежуточном авансе. Попробуйте временно установить в этих документах дату выплаты, равную дате аванса, перезаполните начисление первой половины месяца, а затем верните даты обратно.

Способ 3. Исправление патча EF_20173784 (Для программистов)

Для решения проблем со сторнированием авансового НДФЛ фирма 1С выпускала патч EF_20173784. Однако его первые версии содержали критическую ошибку в функции ДополнитьДвиженияСписаниемАванса. Разберем, как исправить код в расширении или самом патче.

В запросе внутри этой процедуры необходимо добавить условие, чтобы система не учитывала движения самого регистратора, который в данный момент проводится. Рассмотрим пример исправления в блоке ГДЕ:


// Было:
|ГДЕ
| СведенияОДоходахНДФЛ.ЗарегистрированоПриНачисленииАванса <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

// Нужно сделать:
|ГДЕ
| СведенияОДоходахНДФЛ.ЗарегистрированоПриНачисленииАванса <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| И СведенияОДоходахНДФЛ.Регистратор <> &Регистратор

Без этого условия каждое повторное проведение документа Начисление зарплаты и взносов приводило к потере записей о вычетах, и НДФЛ начинал "прыгать" (то есть вычет, то нет).

Способ 4. Программная правка общего модуля УчетНДФЛ (Релиз 3.1.25.37)

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

Найдем строку номер 5675 (в зависимости от версии релиза номер может незначительно отличаться) и закомментируем ее:


// Процедура в модуле УчетНДФЛ
// Находим цикл обработки результатов
Пока СтрокаРезультата.Следующий() Цикл
    // ... какой-то код
    // СоответствиеФизическихЛиц.Вставить(СтрокаРезультата.ФизическоеЛицо, Истина); // ЭТУ СТРОКУ НУЖНО ЗАКОММЕНТИРОВАТЬ
    // ...
КонецЦикла;

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

Способ 5. Проблема иерархии подразделений

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

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

Способ 6. Выравнивание регистров (Метод Клюева)

Если ни один из вышеперечисленных способов не помогает, велика вероятность, что "сломаны" остатки в регистрах НДФЛ из-за некорректных переносов данных или ручных правок в прошлых месяцах. Рассмотрим методику очистки регистров:

В 2023 году ключевым является регистр накопления Расчеты налогоплательщиков с бюджетом по НДФЛ. Программа сопоставляет записи Приход (исчислено) и Расход (удержано/сторнировано) по документам-основаниям. Если в регистре висит "хвост" по сотруднику с прошлых периодов, система в авансе может пытаться его "схлопнуть", обнуляя текущий налог.

Для исправления необходимо воспользоваться документом Перенос данных (обычно по регистрам НДФЛ), чтобы на 01.01.2023 или на дату начала проблемного месяца обнулить все остатки, которые не имеют документа-основания или имеют пустую дату выплаты. После такого технического "выравнивания" алгоритмы расчета начинают работать стабильно.

Рекомендации для контроля

Чтобы убедиться в правильности расчетов, всегда используйте отчет Подробный анализ НДФЛ по сотруднику (в разрезе месяцев налогового периода). Проверяйте соответствие колонки "Доход" и "Исчислено налога". Если вы видите, что налог в авансе равен нулю, посмотрите, нет ли в этом же месяце записей с отрицательным налогом или излишне удержанных сумм, которые перекрывают текущее начисление.

Помните, что 1С регулярно выпускает патчи (исправления). Обязательно проверяйте наличие установленного патча EF_20173784 и последующих обновлений в разделе "Обслуживание — Обновление программы — Исправления (патчи)".

← На главную