Коллеги, сталкиваясь с расхождением между исчисленным и удержанным НДФЛ в 1С:ЗУП 3.1, особенно при выплате отпускных, мы можем оказаться в ситуации, когда сумма налога в ведомости на выплату оказывается меньше ожидаемой. Это распространенная проблема, которая может быть вызвана множеством факторов: от некорректных данных в регистрах до особенностей работы внутренних алгоритмов программы. В этом материале мы подробно разберем, почему возникает такая ситуация и как эффективно диагностировать и устранить ее.
Прежде чем углубляться в дебри регистров и алгоритмов, всегда начинаем с базовых проверок. Часто причина кроется на поверхности.
Проверяем сумму "К выплате" в ведомости.
Критически важный момент: программа 1С:ЗУП 3.1 строго следует правилу, что сумма удержанного НДФЛ не может превышать сумму, которая фактически выплачивается сотруднику "на руки". Если в ведомости колонка "К выплате" меньше, чем сумма начисленных отпускных за вычетом исчисленного НДФЛ, это может быть главной причиной. Почему сумма к выплате может быть меньше?
Всегда сначала убедимся, что фактическая сумма, предназначенная к выдаче, соответствует нашим ожиданиям.
Используем кнопку "Обновить налог" в ведомости.
Иногда простейшее действие может решить проблему. В форме ведомости на выплату зарплаты или отпускных есть кнопка "Обновить налог". Нажмем ее и посмотрим, изменилась ли сумма удержанного НДФЛ. Программа попытается пересчитать налог на основании текущих данных.
Однако, следует помнить, что эта кнопка может не сработать в следующих случаях:
Анализируем карточку сотрудника по НДФЛ.
Для более глубокого понимания ситуации нам необходимо проанализировать историю НДФЛ сотрудника с начала года. Для этого сформируем отчеты, такие как "Подробный анализ НДФЛ по сотруднику" или "Анализ НДФЛ" за весь текущий год. Нас интересуют возможные излишне удержанные или неудержанные суммы НДФЛ в предыдущих периодах. Программа могла скорректировать текущее удержание за счет прошлых переплат.
Если первичные проверки не дали ответа, значит, причина кроется глубже, в регистрах накопления. Программа 1С:ЗУП 3.1 ведет детализированный учет НДФЛ, и любые расхождения фиксируются именно там.
Регистр накопления "Расчеты налогоплательщиков с бюджетом по НДФЛ".
Этот регистр является одним из ключевых для анализа НДФЛ. Откроем его через меню "Все функции" (или "Регистры накопления" в режиме администрирования) и установим отбор по нашему сотруднику и организации. Проанализируем движения за текущий год и предшествующие месяцы. Нас интересуют:
Часто в этом регистре можно обнаружить "зависшие" записи с видом движения "Приход", которые не были перекрыты "Расходом" в прошлых периодах, например, из-за ручных корректировок ведомостей.
Отчет "Подробный анализ НДФЛ по сотруднику".
Этот отчет из раздела "Налоги и взносы" -> "Отчеты по налогам и взносам" является мощным инструментом. Сформируем его по проблемному сотруднику за весь год. Он покажет детализацию по исчисленному, удержанному и перечисленному налогу, а также информацию о возможных переплатах или недоимках.
Регистр налогового учета по НДФЛ.
Этот отчет также доступен в разделе "Налоги и взносы". Сформируем его за текущий год и внимательно рассмотрим все разделы, особенно последний. Именно он покажет, есть ли в программе информация о неудержанном или излишне удержанном налоге на конец периода. Это, по сути, агрегированная информация из регистров накопления, представленная в удобном для бухгалтера виде.
Движения документов.
Откроем документ "Отпуск" или "Больничный лист" (если он упоминается в контексте проблемы) и перейдем в его "Движения документа" (кнопка "Еще" -> "Движения документа"). Здесь мы увидим, какие записи в регистрах формирует этот конкретный документ. Через "Настройка списка" в движениях мы можем включить отбор по физическому лицу и организации, а затем отключить отбор по текущему документу, чтобы увидеть все движения НДФЛ по сотруднику за нужный период, созданные другими документами. Это поможет выявить, какие еще документы влияют на НДФЛ в интересующий нас период.
Другие регистры по НДФЛ.
Для всестороннего анализа можем проверить и другие регистры, связанные с НДФЛ:
ДоходыНДФЛ: для проверки корректности регистрации доходов.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ: для анализа взаимодействия налогового агента с бюджетом.ЗаявлениеНаВычетыПоНДФЛ: если применялись вычеты, убедимся в их корректности.Теперь, когда мы собрали достаточно данных, давайте систематизируем наиболее частые причины расхождений и способы их выявления.
Ограничение удержанного налога суммой выплаты.
Как мы уже упоминали, это одна из наиболее частых причин. Если в ведомости на выплату сумма к выдаче сотруднику (после всех удержаний, кроме НДФЛ) оказывается меньше, чем сумма исчисленного НДФЛ, программа попросту не сможет удержать полный налог. Например, если начислено 50 000 руб., исчислен НДФЛ 6 500 руб., а к выплате из-за долгов сотрудника осталось только 4 000 руб., то программа удержит только 4 000 руб. НДФЛ. Оставшиеся 2 500 руб. НДФЛ останутся неудержанными и будут ждать следующей выплаты.
Пересортица по «Категориям дохода» и «Датам получения дохода».
Программа ведет учет НДФЛ с высокой степенью детализации. Если в регистре РасчетыНалогоплательщиковСБюджетомПоНДФЛ образовалось положительное сальдо (исчисленный, но не удержанный налог) по одной категории дохода (например, "Оплата труда") и отрицательное (излишне удержанный или возвращенный налог) по другой ("Прочие доходы") или по разным датам получения дохода (например, из-за исправлений прошлых месяцев), программа при выплате отпуска может попытаться "схлопнуть" эти суммы. Это приводит к тому, что удержание текущего НДФЛ корректируется за счет этих "хвостов". Особенно критична Дата получения дохода. Если в документе "Отпуск" указана одна планируемая дата выплаты, а в ведомости — другая, программа может "не увидеть" исчисленный налог или, наоборот, подтянуть налог с других дат, изменяя итоговую сумму.
Влияние налоговых вычетов (имущественных, социальных, стандартных).
Если сотруднику в середине года был введен документ "Уведомление о праве на налоговый вычет", и сумма вычета за год (или за предыдущие месяцы) превышает текущие начисления, то при расчете отпуска программа может показать исчисленный налог. Однако при попытке его удержать в ведомости сумма может обнулиться или значительно уменьшиться. Это происходит потому, что программа задействует механизм возврата или пересчета налога за прошлые месяцы внутри текущего документа, компенсируя уже уплаченный НДФЛ за счет вычетов.
Проблема "Сумма к выплате 0, а НДФЛ есть" и регистр "Зарплата к выплате".
Иногда может возникнуть обратная ситуация: сумма к выплате равна нулю, но НДФЛ все равно отображается. Это часто связано с некорректными остатками в регистре накопления ЗарплатаКВыплате. Если в этом регистре "зависли" остатки по конкретным ведомостям или документам-основаниям за прошлые периоды (иногда даже за прошлые годы), алгоритм распределения НДФЛ в ведомости начинает работать некорректно, пытаясь распределить налог на эти "призрачные" остатки, которые по факту уже были выплачены или скорректированы внесистемно.
Влияние настройки "Учет НДФЛ по дате выплаты" (для версий 2023-2024 гг. и более поздних).
Хотя в нашем кейсе речь идет о 2021 годе, для актуальных версий ЗУП (после изменений законодательства в 2023 году, когда дата выплаты стала определяющей для момента исчисления налога) этот фактор имеет большое значение. Если ведомость оформляется раньше или позже даты, указанной в документе "Отпуск" как планируемая дата выплаты дохода, налог может быть пересчитан непосредственно в момент проведения ведомости. Это может привести к изменению суммы удержанного налога относительно первоначального расчета в документе-основании (отпуске).
Признак "Налог рассчитан внешним инструментом".
Если в базу переносились данные из других программ или использовались сторонние обработки для загрузки данных, в скрытых реквизитах документов может быть установлен специальный признак, который блокирует автоматическое обновление НДФЛ в ведомостях. В таком случае кнопка "Обновить налог" не даст никакого результата, и может потребоваться ручная корректировка или перепроведение самого документа-основания.
Учет по источникам финансирования и ОКТМО.
Если в организации ведется учет по нескольким источникам финансирования или по разным ОКТМО (например, если сотрудник работает в разных обособленных подразделениях), и отпускные могут складываться из разных источников, то возможно, по одному из источников образовалась задолженность. Тогда программа уменьшит сумму выплаты по этому источнику, что, в свою очередь, приведет к уменьшению удержанного НДФЛ пропорционально уменьшенной выплате.
Для полного понимания картины, особенно в сложных случаях, полезно рассмотреть, как программа определяет суммы к удержанию на низком уровне. Алгоритм удержания НДФЛ реализован в функции РассчитатьУдержанныеНалоги в модуле "учет НДФЛ". Эта функция анализирует остатки НДФЛ в разрезе документов и дат, чтобы корректно определить, какую сумму налога нужно удержать.
Рассмотрим фрагмент кода, который отвечает за эту логику:
Если Не Результаты[2].Пустой Тогда
Выборка = Результаты[2].Выбрать;
Пока Выборка.СледующийПоЗначениюПоля("ФизическоеЛицо") Цикл
Если Выборка.ВсегоПоФизическомуЛицуСуммаОстаток > 0 Тогда
Пока Выборка.СледующийПоЗначениюПоля("СтавкаНалогообложенияРезидента") Цикл
Пока Выборка.СледующийПоЗначениюПоля("НалоговыйПериод") Цикл
Если Выборка.ОстатокЗаНалоговыйПериод >= 0 Тогда
ОстатокКУдержанию = 0;
Пока Выборка.Следующий Цикл
Если Выборка.ПоФизическомуЛицуНаДатуПолученияДоходаСуммаОстаток <> 0 Тогда
ОстатокКУдержанию = ОстатокКУдержанию + Выборка.СуммаОстаток;
Если ОстатокКУдержанию > 0 И Выборка.СуммаОстаток > 0 Тогда
СписываемаяСумма = Мин(Выборка.СуммаОстаток, ОстатокКУдержанию);
ОстатокКУдержанию = ОстатокКУдержанию - СписываемаяСумма;
СтрокаТаблицыРезультатов = РезультатыРасчетов.Добавить;
ЗаполнитьЗначенияСвойств(СтрокаТаблицыРезультатов, Выборка);
СтрокаТаблицыРезультатов.Сумма = СписываемаяСумма;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ИначеЕсли Выборка.ОстатокЗаНалоговыйПериод < 0 Тогда
СтрокаТаблицыРезультатов = РезультатыРасчетов.Добавить;
ЗаполнитьЗначенияСвойств(СтрокаТаблицыРезультатов, Выборка);
СтрокаТаблицыРезультатов.Сумма = Выборка.ОстатокЗаНалоговыйПериод;
СтрокаТаблицыРезультатов.МесяцНалоговогоПериода = Выборка.ПоследнийМесяцНалоговогоПериода;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Что происходит в этом коде?
Выборка.ОстатокЗаНалоговыйПериод >= 0), программа пытается его "списать", то есть удержать.ОстатокКУдержанию = ОстатокКУдержанию + Выборка.СуммаОстаток; показывает, что программа накапливает сумму к удержанию.СписываемаяСумма = Мин(Выборка.СуммаОстаток, ОстатокКУдержанию); означает, что списывается либо вся сумма остатка по текущей записи, либо только та часть, которую можно удержать.ИначеЕсли Выборка.ОстатокЗаНалоговыйПериод < 0 Тогда обрабатывает ситуации с излишне удержанным налогом (отрицательный остаток), добавляя его в результаты для потенциального зачета или возврата.Если в ходе этого алгоритма обнаруживаются "несостыковки" (например, отрицательные остатки, излишне удержанные налоги в прошлых периодах или неправильно сформированные движения), это может привести к тому, что текущая сумма удержания будет скорректирована.
На основе всей полученной информации мы можем сформировать алгоритм действий для устранения проблемы.
Отмена и перепроведение документов.
Это самый радикальный, но часто самый действенный метод, особенно если причина в "пересортице" или зависших остатках. Лучше всего выполнять его в копии базы:
Использование универсального отчета.
Если стандартные отчеты не дают полной картины, настройте "Универсальный отчет" по регистру накопления РасчетыНалогоплательщиковСБюджетомПоНДФЛ. Сгруппируйте данные по:
Это позволит вам увидеть каждое движение в регистре и понять, где именно возникло расхождение или "завис" какой-либо остаток.
Проверка всех ведомостей.
В некоторых случаях проблема может быть связана с тем, что в других ведомостях (например, за предыдущий месяц) этот отпуск уже был частично учтен, или в них есть другие, некорректные записи по НДФЛ этого сотрудника. Откройте ведомости за текущий и предыдущие месяцы и провалитесь в сумму НДФЛ (двойным щелчком мыши по полю НДФЛ) в каждой из них. Это покажет, из каких документов и по каким суммам формируется налог в каждой конкретной ведомости.
Решение проблемы с некорректным удержанием НДФЛ в 1С:ЗУП 3.1 требует системного подхода. Мы начинаем с простых проверок, переходим к глубокому анализу регистров и, при необходимости, используем технические инструменты для понимания алгоритмов работы программы. Главное — помнить, что программа всегда пытается объяснить свои действия, и наша задача — правильно "прочитать" эти объяснения через доступные отчеты и данные регистров.