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

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

При расчете межрасчетных документов (например, документа Отпуск или Больничный лист) или итоговом начислении зарплаты в программе 1С:Зарплата и Управление Персоналом 3.1 пользователи и разработчики часто сталкиваются с непонятной ситуацией: в табличной части расчета НДФЛ возникают две идентичные по сумме строки за прошлые периоды — одна со знаком «плюс», а другая со знаком «минус» (например, +1300 и -1300 рублей за январь при расчете отпуска в феврале).

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

Как работает механизм перерасчета НДФЛ нарастающим итогом

Начиная с релизов серии 1С:ЗУП 3.1.4, алгоритм учета налога на доходы физических лиц претерпел существенные изменения и стал более строгим к аналитике. Давайте разберем, почему программа формирует сторно и новое начисление за прошлые месяцы.

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

  1. Программа собирает весь доход сотрудника за прошлые месяцы текущего года на основе данных регистра накопления УчетДоходовДляИсчисленияНДФЛ.
  2. Рассчитывает правильную, с точки зрения текущих алгоритмов и настроек, сумму налога за каждый прошлый месяц по каждой аналитике.
  3. Сравнивает полученные значения с фактически учтенными записями в регистре накопления РасчетыНалогоплательщиковСБюджетомПоНДФЛ.
  4. Если итоговая сумма налога совпадает, но хотя бы одно из измерений или реквизитов аналитики различается (например, категория дохода, ИФНС, дата получения дохода или вид дохода), программа выполняет сторнирование старой записи (строка с минусом) и сразу же записывает новое верное значение (строка с плюсом).

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

Главная причина: некорректные движения в доработанных (самописных) документах

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

Причиной такого поведения программы стало то, что при проведении доработанного документа не заполнялся или не двигался «Вид дохода» (реквизит ВидДохода) в регистрах учета НДФЛ.

Когда стандартный документ Отпуск в феврале пересчитывал налоговую базу за январь, он ожидал увидеть зафиксированный вид дохода в регистре накопления УчетДоходовДляИсчисленияНДФЛ. Не найдя совпадения по этому измерению, алгоритм 1С сторнировал январскую запись без вида дохода и сформировал новую запись с правильно заполненным видом дохода.

Дополнительные причины возникновения «плюс-минус» НДФЛ

Помимо ошибок в коде кастомных документов, на практике в 1С:ЗУП 3.1 к появлению парных строчек НДФЛ могут приводить следующие факторы:

  1. Расхождения в датах получения дохода: Плановая дата выплаты, указанная в документе начисления, отличается от фактической даты выплаты в документе Ведомость в банк или Ведомость в кассу.
  2. Изменение аналитики учета: Смена регистрационного органа (ИФНС/ОКТМО), подразделения или статьи финансирования задним числом.
  3. Изменение категории дохода: Начисление прошло по категории «Оплата труда (основная налоговая база)», а алгоритм перерасчета определяет его как «Прочие доходы от трудовой деятельности».
  4. Ввод документов задним числом: Нарушение хронологической последовательности проведения (например, зарплата за январь пересчитана после расчета февральского отпуска).
  5. Изменения в новом регистре БухгалтерскиеВзаиморасчетыССотрудниками: Этот регистр отвечает за контроль выплат и взаиморасчетов, начиная с релиза 3.1.4, и его некорректное заполнение при обновлениях базы может влиять на алгоритмы перерасчетов.

Шаг 1. Диагностика проблемы «под микроскопом»

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

  1. Откроем раздел Налоги и взносы — Отчеты по налогам и взносам.
  2. Сформируем отчет Подробный анализ НДФЛ по сотруднику за период с начала года.
  3. В настройках отчета включим группировку по регистраторам, датам получения дохода и категориям дохода.
  4. Сравним две строки с плюсом и минусом: найдем колоночную или текстовую разницу между ними. Различие в ИФНС, дате дохода, категории или виде дохода сразу укажет на причину сторнирования.

Шаг 2. Исправление кода проведения кастомного документа

Если проблема вызвана доработанным документом, необходимо скорректировать модуль проведения данного документа в Конфигураторе. Рассмотри пример того, как должны формироваться движения по регистру накопления УчетДоходовДляИсчисленияНДФЛ.

При формировании записей обязательно заполняйте измерения и реквизиты: ВидДохода, КатегорияДохода, ДатаПолученияДохода, Подразделение, Организация и ИФНС.

Рассмотрим пример правильного заполнения движения по регистру доходов для НДФЛ на языке 1С:


Движение = Движения.УчетДоходовДляИсчисленияНДФЛ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = ТекСтрока.ДатаПолученияДохода;
Движение.Организация = Шапка.Организация;
Движение.ФизическоеЛицо = ТекСтрока.ФизическоеЛицо;
Движение.Сотрудник = ТекСтрока.Сотрудник;
Движение.Подразделение = ТекСтрока.Подразделение;
Движение.Регистратор = Ссылка;

// Обязательные реквизиты для корректного расчета НДФЛ
Движение.ДатаПолученияДохода = ТекСтрока.ДатаПолученияДохода;
Движение.ВидДохода = ТекСтрока.ВидДохода; // Важно: Вид дохода не должен быть пустым!
Движение.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ОплатаТруда;
Движение.Сумма = ТекСтрока.Результат;
Движение.СтатьяФинансирования = ТекСтрока.СтатьяФинансирования;
Движение.СтатьяРасходов = ТекСтрока.СтатьяРасходов;

Аналогично проверьте формирование движений по регистру РасчетыНалогоплательщиковСБюджетомПоНДФЛ. В нем также должны совпадать все ключевые реквизиты:


ДвижениеНДФЛ = Движения.РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Добавить();
ДвижениеНДФЛ.ВидДвижения = ВидДвиженияНакопления.Приход;
ДвижениеНДФЛ.Период = ТекСтрока.ДатаПолученияДохода;
ДвижениеНДФЛ.Организация = Шапка.Организация;
ДвижениеНДФЛ.ФизическоеЛицо = ТекСтрока.ФизическоеЛицо;
ДвижениеНДФЛ.Подразделение = ТекСтрока.Подразделение;

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

Шаг 3. Перепроведение документов

После внесения и сохранения изменений в модуле проведения самописного документа выполните следующие шаги:

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

Таким образом, точное соблюдение полноты аналитики при записи движений в регистры НДФЛ гарантирует корректную работу типовых механизмов перерасчета в 1С:ЗУП 3.1.

← На главную