Почему в 1С:УПП 1.3 не рассчитывается НДФЛ и как это исправить?

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

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

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

Выясним, как решить эту проблему. Важно отметить, что это официально признанная ошибка, зарегистрированная под кодом 10240409. Существует несколько способов ее исправления, от самых правильных и официальных до временных и требующих вмешательства в код.

Официальное решение — обновление конфигурации

Самый правильный и безопасный способ устранения проблемы — обновить вашу конфигурацию 1С:УПП до версии, в которой разработчики уже исправили эту ошибку. Это гарантирует корректную работу программы без ручных вмешательств и сохраняет официальную поддержку.

Ошибка была исправлена в следующих релизах:

  1. 1.3.244.1
  2. 1.3.243.2
  3. 1.3.239.2

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

Временные обходные пути (если обновиться нельзя)

Если по каким-то причинам вы не можете оперативно обновить конфигурацию, существуют временные решения, которые помогут рассчитать налог корректно. Рассмотрим их по шагам.

Решение 1: Корректировка начислений предыдущего месяца

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

  1. Откройте документ Начисление зарплаты сотрудникам организаций за предыдущий месяц по проблемному сотруднику.
  2. На закладке "Начисления" добавьте сотруднику любое начисление на символическую сумму, например, 1 копейку или 1 рубль. Цель — сделать итоговую сумму начислений за месяц больше, чем сумма выплаченного аванса.
  3. Перепроведите документ.

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

Решение 2: Использование документа "Перерасчет НДФЛ"

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

  1. Создайте новый документ Перерасчет НДФЛ в текущем расчетном периоде.
  2. С помощью кнопки "Заполнить" добавьте в документ сотрудников, по которым налог не был рассчитан.
  3. Программа должна автоматически обнаружить несоответствие и доначислить необходимую сумму НДФЛ.

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

Исправление ошибки в коде конфигурации (для программистов)

Внимание! Данный способ предполагает изменение типового кода конфигурации. Выполняйте его, только если вы полностью понимаете последствия. Это снимает конфигурацию с официальной поддержки и может усложнить будущие обновления. Перед внесением изменений обязательно сделайте резервную копию информационной базы.

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

Разберем по шагам, как внести исправление:

  1. Откройте конфигурацию в режиме "Конфигуратор".
  2. В дереве конфигурации найдите раздел "Общие" -> "Общие модули" и откройте модуль ПроведениеРасчетов.
  3. С помощью поиска (Ctrl + F) найдите функцию ПолучитьДанныеНДФЛПоРегистратору.
  4. Внутри этой функции найдите следующую строку кода: Если ВыборкаРасчетов.ОблагаемыйДоход <> 0 Или ЭтоПерерасчет Тогда
  5. Замените в этой строке поле ОблагаемыйДоход на ОблагаемыйДоходЗаМесяц. Исправленная строка должна выглядеть так: Если ВыборкаРасчетов.ОблагаемыйДоходЗаМесяц <> 0 Или ЭтоПерерасчет Тогда
  6. Сохраните изменения в модуле, а затем обновите конфигурацию базы данных (F7).

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

← На главную