При работе в 1С:Зарплата и Управление Персоналом (особенно в версиях КОРП) часто возникает задача прогнозирования налоговой нагрузки для сотрудников, работающих в нескольких юридических лицах холдинга или имеющих различные виды доходов (зарплата и дивиденды). Стандартные отчеты считают налог в разрезе каждого налогового агента (организации) отдельно, однако ФНС по итогам года суммирует все доходы физического лица.
Рассмотрим подробно ситуацию, когда необходимо настроить пользовательский отчет для проверки совокупного НДФЛ, разберем типичные ошибки при написании формул в Системе Компоновки Данных (СКД) и выясним, почему простые арифметические действия могут приводить к непредсказуемым результатам.
Ситуация следующая: сотрудник работает в нескольких компаниях группы или получает зарплату и дивиденды. В каждой отдельной организации его доход может не превышать 5 миллионов рублей, поэтому налог удерживается по ставке 13%. Однако в сумме по всем организациям доход превышает лимит, и возникает обязанность доплаты налога по ставке 15% с суммы превышения.
Задача бухгалтера — увидеть эту разницу заранее ("дельту" между тем, что удержали агенты, и тем, что насчитает налоговая), чтобы предупредить руководство или сотрудников.
Для этого часто используется отчет "Анализ НДФЛ по месяцам" (или аналогичные), в который добавляется пользовательское поле с формулой вида:
(СовокупныйДоход - 5 000 000) * 15% + 650 000 - УдержанныйНалог
Однако при попытке реализовать это в 1С пользователи часто сталкиваются со следующими проблемами:
Разберем причины этих ошибок и способы их устранения.
Самая распространенная ошибка, с которой столкнулся автор темы, заключается в непонимании того, как СКД (механизм, строящий отчеты) обрабатывает формулы с константами.
Предположим, вы пишете формулу:
Результат = Доход * 0.15 + 650000
Вам кажется, что программа возьмет общую сумму дохода сотрудника, умножит на ставку и прибавит фиксированную часть налога (650 тыс. руб.).
Как это работает на самом деле:
Отчет строится на основе записей регистров. У одного сотрудника за год может быть множество записей:
Если в выборке по сотруднику присутствует, например, 15 строк (12 зарплат + 3 выплаты дивидендов), то СКД применяет вашу формулу к каждой строке, а затем суммирует результат (так как поле является Ресурсом).
В итоге вы получаете:
ИтоговыйНалог = (Доход_Янв * 0.15 + 650000) + (Доход_Фев * 0.15 + 650000) + ...
То есть константа 650000 будет прибавлена к налогу 15 раз! Именно поэтому цифры получаются "космическими" и разнятся у сотрудников с одинаковым доходом (зависит от количества начислений, а не от суммы).
Чтобы избежать многократного сложения констант, необходимо изменить подход к редактированию полей. В настройках отчета (Еще — Изменить вариант отчета) на закладке "Пользовательские поля" нужно быть осторожным.
Правильный алгоритм действий:
+ 650000 или - 5000000) напрямую в формулу ресурса, который рассчитывается по детальным записям.В обсуждаемом случае автор пришла к выводу, что лучше использовать формулу, вычисляющую чистый налог от базы, без попытки "в лоб" смоделировать формулу НК РФ с вычетом 5 млн в каждой строке.
Корректная логика вычисления должна выглядеть так:
(Сумма(Начислено) - Сумма(Вычеты)) * 0.15
Если же вам нужно именно сложное условие (если > 5 млн, то считать иначе), то в языке выражений СКД следует использовать конструкцию Выбор и применять её к агрегированным данным. Однако в пользовательском режиме это сделать сложно. Проще выгрузить данные в Excel или использовать доработанный отчет.
Второй вопрос касался того, почему поле НалоговаяБаза в формуле возвращает 0, хотя в отчете колонка заполнена цифрами.
Причина:
Поле НалоговаяБаза в отчете "Анализ НДФЛ" является вычисляемым ресурсом. Оно не хранится в явном виде в каждой строке регистра накопления "Расчеты налогоплательщиков с бюджетом по НДФЛ" именно в том контексте, в котором вы его видите. Часто база собирается динамически в момент формирования отчета.
Когда вы создаете свое пользовательское поле, оно пытается обратиться к данным на уровне детальных записей выборки. Если на этом уровне ресурс еще не рассчитан (или он рассчитывается только для итогов), формула получает Null или 0.
Решение:
Вместо использования готового поля НалоговаяБаза, в формулах надежнее использовать исходные составляющие:
(Начислено - Вычеты)
Эти поля (Сумма дохода и Сумма вычетов) обычно доступны на уровне записей и корректно обрабатываются в арифметических операциях.
Попытка переделать отчет "Анализ НДФЛ по месяцам" для годового анализа совокупного дохода — не самая оптимальная стратегия. Рассмотрим, какие инструменты подойдут лучше.
Для программиста или продвинутого пользователя лучше подойдет "Универсальный отчет".
УчетДоходовДляИсчисленияНДФЛ или РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Важно помнить о методологии. До 2025 года налоговые базы по дивидендам и оплате труда для налогового агента считаются раздельно. То есть, если у сотрудника 4 млн зарплаты и 4 млн дивидендов:
С 2025 года правила меняются, и налоговый агент должен будет суммировать базы самостоятельно (если доходы выплачиваются одним агентом). Но для разных юрлиц (даже внутри холдинга) правило раздельного расчета сохраняется — каждое юрлицо видит только свои выплаты.
Если вы все же хотите настроить формулу в отчете "Анализ НДФЛ", соблюдайте следующие правила:
+ 650000 в формуле пользовательского поля, если не уверены, что оно применяется только к итогам.НалоговаяБаза используйте Начислено - Вычеты.Если задача стоит остро и касается большого количества сотрудников, оптимальным решением будет заказ внешней обработки или отчета у программиста 1С, который сможет программно собрать данные со всех организаций и применить сложную логику прогрессивной шкалы (13%, 15% и новые ставки с 2025 года) корректно.