С 1 января 2025 года в России вступила в силу многоступенчатая прогрессивная шкала НДФЛ. Теперь вместо привычных двух ставок (13% и 15%) мы работаем с пятью уровнями: 13, 15, 18, 20 и 22%. Однако пользователи программного продукта 1С:Зарплата и управление персоналом (ЗУП) столкнулись с проблемой: программа корректно исчисляет налог в документах начисления, но при попытке сформировать справку о доходах (бывшая 2-НДФЛ) данные либо не заполняются вовсе, либо «сваливаются» в одну ставку 15%, игнорируя последующие пороги. Рассмотрим детально, почему это происходит и как исправить ситуацию.
Проанализируем техническую сторону вопроса. Основная сложность заключается в том, что в переходный период (первые релизы 2025 года) разработчики 1С обновили механизмы расчета в документах НачислениеЗарплатыИВзносов, но не успели полностью адаптировать алгоритмы формирования регламентированной отчетности. Выясним основные причины сбоев:
ОбщаяСуммаДоходаПоСтавке18. Если в макете или программном интерфейсе текущего релиза эти поля не объявлены, возникает критическая ошибка «Поле объекта не обнаружено».Прежде всего разберем ситуацию с обновлениями. Проблема носит массовый характер, и вендор (фирма 1С) выпускает патчи и новые релизы по мере стабилизации законодательных трактовок. Проанализируем версии:
Если обновление по каким-то причинам невозможно, а справки нужно выдать сотрудникам срочно, рассмотрим пример локализации ошибки в коде. Проблема часто кроется в функции ПараметрыРасчетаНДФЛПоПрогрессивнойШкалеС2025Года. Посмотрим, как реализованы параметры шкалы в типовом решении:
// Пример структуры параметров в общем модуле
ПараметрыНалоговаяБаза = Новый Структура;
ПараметрыНалоговаяБаза.Вставить("СтавкаДляРезидента", СтавкаДляРезидента);
ПараметрыНалоговаяБаза.Вставить("СтавкаСПревышения1", 0.15);
ПараметрыНалоговаяБаза.Вставить("СтавкаСПревышения2", 0.18);
ПараметрыНалоговаяБаза.Вставить("СтавкаСПревышения3", 0.20);
ПараметрыНалоговаяБаза.Вставить("СтавкаСПревышения4", 0.22);
ПараметрыНалоговаяБаза.Вставить("Предел1", 2400000);
ПараметрыНалоговаяБаза.Вставить("Предел2", 5000000);
ПараметрыНалоговаяБаза.Вставить("Предел3", 20000000);
ПараметрыНалоговаяБаза.Вставить("Предел4", 50000000);
При заполнении справки программа должна распределять доход по этим слоям. Если вы обнаружили, что доход свыше 5 000 000 рублей все равно попадает в колонку 15%, необходимо проверить процедуру распределения в общем модуле УчетНДФЛ. Проанализируем фрагмент кода, который отвечает за сбор итогов по ставкам. В случае ошибки «Поле объекта не обнаружено», следует добавить проверку существования ключа в структуре:
Функция СправкиНДФЛЗначениеИтоговПоСтавке(ДанныеСправки, ИмяПоляИтоговПоСтавке, Ставка) Экспорт
Если ДанныеСправки.Свойство(ИмяПоляИтоговПоСтавке) Тогда
Возврат ДанныеСправки[ИмяПоляИтоговПоСтавке];
КонецЕсли;
Возврат 0;
КонецФункции
Рассмотрим ситуацию, когда в расчетном листке всё верно, а в справку данные не попадают. Это признак того, что записи в регистрах накопления (например, РасчетыНалогоплательщиковСБюджетомПоНДФЛ) были сформированы до обновления программы или с ошибкой распределения. Разберем шаги по исправлению данных:
Во-первых, проверьте наличие старых внешних печатных форм. Если в окне печати вы видите несколько вариантов справки, убедитесь, что выбрана стандартная форма текущего года. Старые версии обработок 2019-2023 годов не содержат макетов для новых ставок и будут вызывать ошибки встроенного языка.
Во-вторых, обратите внимание на дату получения дохода. С 2023 года НДФЛ привязан к дате выплаты. Если зарплата за декабрь 2024 года была выплачена в январе 2025, она может попасть в базу 2025 года по старым правилам (13/15%), в то время как январские начисления будут облагаться уже по новой шкале (2,4 млн / 5 млн и т.д.).
В-третьих, используйте отчет «Анализ НДФЛ по датам получения дохода» для самопроверки. Он обращается напрямую к движениям документов и поможет вам увидеть, на каком этапе «потерялась» налоговая база — на стадии начисления или на стадии формирования отчетности.