При расчете межрасчетных документов (например, документа Отпуск или Больничный лист) или итоговом начислении зарплаты в программе 1С:Зарплата и Управление Персоналом 3.1 пользователи и разработчики часто сталкиваются с непонятной ситуацией: в табличной части расчета НДФЛ возникают две идентичные по сумме строки за прошлые периоды — одна со знаком «плюс», а другая со знаком «минус» (например, +1300 и -1300 рублей за январь при расчете отпуска в феврале).
В этой статье мы подробно проанализируем механику работы НДФЛ в 1С:ЗУП, выясним причины возникновения таких «нулевых» перерасчетов и разберем, как диагностировать и устранить эту проблему, если она вызвана ошибками в доработанных или самописных документах.
Начиная с релизов серии 1С:ЗУП 3.1.4, алгоритм учета налога на доходы физических лиц претерпел существенные изменения и стал более строгим к аналитике. Давайте разберем, почему программа формирует сторно и новое начисление за прошлые месяцы.
Исчисление НДФЛ производится помесячно, но нарастающим итогом с начала налогового периода (календарного года). Когда мы проводим документ расчета (например, Отпуск за февраль), система не просто рассчитывает налог с суммы отпускных, а выполняет полный алгоритм проверки:
УчетДоходовДляИсчисленияНДФЛ.РасчетыНалогоплательщиковСБюджетомПоНДФЛ.В результате итоговая сумма НДФЛ к удержанию за текущий месяц не меняется, но в документе и отчетах появляются две записи за январский или прошлый период, «схлопывающиеся» в ноль.
Проанализируем конкретный практический случай. На производственной базе при расчете отпуска в феврале у всех сотрудников стали появляться парные суммы НДФЛ за январь. При этом в январе был введен самодельный документ начисления доходов.
Причиной такого поведения программы стало то, что при проведении доработанного документа не заполнялся или не двигался «Вид дохода» (реквизит ВидДохода) в регистрах учета НДФЛ.
Когда стандартный документ Отпуск в феврале пересчитывал налоговую базу за январь, он ожидал увидеть зафиксированный вид дохода в регистре накопления УчетДоходовДляИсчисленияНДФЛ. Не найдя совпадения по этому измерению, алгоритм 1С сторнировал январскую запись без вида дохода и сформировал новую запись с правильно заполненным видом дохода.
Помимо ошибок в коде кастомных документов, на практике в 1С:ЗУП 3.1 к появлению парных строчек НДФЛ могут приводить следующие факторы:
Ведомость в банк или Ведомость в кассу.БухгалтерскиеВзаиморасчетыССотрудниками: Этот регистр отвечает за контроль выплат и взаиморасчетов, начиная с релиза 3.1.4, и его некорректное заполнение при обновлениях базы может влиять на алгоритмы перерасчетов.Для того чтобы выяснить, какое именно измерение вызывает расхождение, воспользуемся специализированным отчетом.
Если проблема вызвана доработанным документом, необходимо скорректировать модуль проведения данного документа в Конфигураторе. Рассмотри пример того, как должны формироваться движения по регистру накопления УчетДоходовДляИсчисленияНДФЛ.
При формировании записей обязательно заполняйте измерения и реквизиты: ВидДохода, КатегорияДохода, ДатаПолученияДохода, Подразделение, Организация и ИФНС.
Рассмотрим пример правильного заполнения движения по регистру доходов для НДФЛ на языке 1С:
Движение = Движения.УчетДоходовДляИсчисленияНДФЛ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = ТекСтрока.ДатаПолученияДохода;
Движение.Организация = Шапка.Организация;
Движение.ФизическоеЛицо = ТекСтрока.ФизическоеЛицо;
Движение.Сотрудник = ТекСтрока.Сотрудник;
Движение.Подразделение = ТекСтрока.Подразделение;
Движение.Регистратор = Ссылка;
// Обязательные реквизиты для корректного расчета НДФЛ
Движение.ДатаПолученияДохода = ТекСтрока.ДатаПолученияДохода;
Движение.ВидДохода = ТекСтрока.ВидДохода; // Важно: Вид дохода не должен быть пустым!
Движение.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ОплатаТруда;
Движение.Сумма = ТекСтрока.Результат;
Движение.СтатьяФинансирования = ТекСтрока.СтатьяФинансирования;
Движение.СтатьяРасходов = ТекСтрока.СтатьяРасходов;
Аналогично проверьте формирование движений по регистру РасчетыНалогоплательщиковСБюджетомПоНДФЛ. В нем также должны совпадать все ключевые реквизиты:
ДвижениеНДФЛ = Движения.РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Добавить();
ДвижениеНДФЛ.ВидДвижения = ВидДвиженияНакопления.Приход;
ДвижениеНДФЛ.Период = ТекСтрока.ДатаПолученияДохода;
ДвижениеНДФЛ.Организация = Шапка.Организация;
ДвижениеНДФЛ.ФизическоеЛицо = ТекСтрока.ФизическоеЛицо;
ДвижениеНДФЛ.Подразделение = ТекСтрока.Подразделение;
ДвижениеНДФЛ.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ОплатаТруда;
ДвижениеНДФЛ.ДатаПолученияДохода = ТекСтрока.ДатаПолученияДохода;
ДвижениеНДФЛ.ВидДохода = ТекСтрока.ВидДохода;
ДвижениеНДФЛ.Сумма = ТекСтрока.НДФЛ;
После внесения и сохранения изменений в модуле проведения самописного документа выполните следующие шаги:
Отпуск за февраль и нажмите кнопку Пересчитать НДФЛ.Таким образом, точное соблюдение полноты аналитики при записи движений в регистры НДФЛ гарантирует корректную работу типовых механизмов перерасчета в 1С:ЗУП 3.1.