При формировании отчетности по налогу на доходы физических лиц (НДФЛ) в конфигурации 1С:Зарплата и управление персоналом КОРП (ЗУП КОРП) пользователи часто сталкиваются с ситуацией, когда доходы сотрудников, облагаемые по разным ставкам (13% и 15% по прогрессивной шкале), некорректно распределяются между различными налоговыми органами (ИФНС) обособленных подразделений. Это приводит к искажениям в детализации доходов по ставкам в справках 2-НДФЛ (теперь Приложение № 1 к расчету 6-НДФЛ), хотя общая сумма налога может быть рассчитана верно. Давайте разберем эту проблему и рассмотрим возможные пути ее решения.
Суть проблемы:
Согласно требованиям законодательства, российские организации с обособленными подразделениями обязаны перечислять НДФЛ и представлять отчетность (6-НДФЛ и Приложение № 1 к ней) как по месту своего нахождения, так и по месту нахождения каждого обособленного подразделения. Сумма налога определяется исходя из доходов, выплаченных работникам каждого подразделения.
С 2021 года введена прогрессивная шкала НДФЛ: 13% для доходов до 5 млн рублей и 15% для доходов свыше 5 млн рублей. Программа 1С:ЗУП автоматически рассчитывает НДФЛ, учитывая эту шкалу.
Основная сложность возникает, когда у сотрудника в один и тот же день возникают доходы, которые в сумме превышают 5 млн рублей, и эти доходы должны быть распределены между несколькими ИФНС (например, если сотрудник работал в разных обособленных подразделениях или доходы выплачиваются через разные ИФНС). Алгоритм ЗУП в таких случаях начинает пропорционально распределять весь доход за этот "день получения дохода" между всеми зарегистрированными ИФНС. Это происходит потому, что, как объясняет техническая поддержка 1С, налоговым агентом является организация в целом, а не ее обособленные подразделения, и облагаемая база определяется исходя из всех доходов у данного налогового агента. Действующее законодательство не описывает порядок распределения этих расчетов по балансам филиалов.
Программа не может опираться на порядок ввода документов или на ставки, по которым налог исчислялся в конкретном документе, так как это может привести к арифметическим ошибкам при частых исправлениях или непоследовательном вводе. В результате, даже если общий НДФЛ рассчитан корректно, детализация доходов по ставкам (13% и 15%) в разрезе каждой ИФНС может быть искажена. Например, вместо ожидаемых 13% 1 100 000 руб. и 15% 2 000 000 руб. по одной ИФНС, мы можем увидеть 13% 1 488 000 руб. и 15% 1 612 000 руб., при этом общая сумма дохода и налога по этой ИФНС останется прежней.
Давайте рассмотрим, как мы можем управлять этим распределением.
Это один из наиболее действенных способов обойти автоматическое пропорциональное распределение доходов по ставкам, если оно происходит в один день. Мы выясним, как можно повлиять на алгоритм, манипулируя датами получения дохода для разных ставок.
Понимание механизма пропорционального распределения:
Программа ЗУП применяет пропорциональное распределение доходов между ИФНС только в том случае, если на один и тот же "день получения дохода" приходятся суммы, облагаемые по разным ставкам (13% и 15%) и требующие распределения между несколькими регистрациями в налоговом органе. Если доходы, облагаемые по 13% и 15%, приходятся на разные даты, пропорциональное распределение внутри одной ставки не происходит.
Использование документа "Перенос данных":
Для корректировки данных по НДФЛ мы будем использовать стандартный документ Перенос данных. Этот документ позволяет напрямую вносить записи в регистры накопления, которые используются для формирования отчетности по НДФЛ. Нас интересуют следующие регистры:
НДФЛКПеречислениюРасчетыНалогоплательщиковСБюджетомПоНДФЛСведенияОДоходахНДФЛИменно регистр СведенияОДоходахНДФЛ содержит информацию о доходах в разрезе кодов доходов, ставок и регистраций в налоговом органе, которая используется для заполнения справок 2-НДФЛ.
Шаги по корректировке даты получения дохода:
Предположим, у нас есть ситуация, описанная в примере:
Автоматически ЗУП рассчитает коэффициенты (например, для ИФНС 20: 3100/5000 = 0.62) и применит их ко всем доходам, что приведет к искажению сумм по ставкам.
Наша задача: сдвинуть дату получения дохода, облагаемого по 13%, на один предыдущий день, чтобы избежать пропорционального распределения по ставке 13% внутри дня, когда происходит "перелом" шкалы.
Определяем некорректные записи: Сформируйте отчеты по НДФЛ (например, "Анализ НДФЛ по месяцам") в разрезе регистраций в ИФНС и ставок, чтобы понять, какие суммы и по каким сотрудникам распределились неверно. Выясним, какие записи в регистре СведенияОДоходахНДФЛ необходимо скорректировать.
Создаем документ "Перенос данных": Перейдите в раздел "Зарплата" или "Налоги и взносы" (в зависимости от настроек интерфейса), найдите "Перенос данных" и создайте новый документ.
Настраиваем регистры для корректировки: В документе Перенос данных добавьте регистр СведенияОДоходахНДФЛ.
Вносим корректирующие записи:
СведенияОДоходахНДФЛ для 13% дохода (с неправильной суммой или датой) на исходную дату. Укажите все измерения: сотрудника, регистрацию в НО, код дохода, ставку, сумму дохода, дату получения дохода.Таким образом, мы "переносим" часть дохода, облагаемую по 13%, на другой день, тем самым исключая ее из пропорционального распределения, которое происходит в день "перелома" шкалы.
Проверяем результат: После проведения документа "Перенос данных" сформируйте отчеты 2-НДФЛ (Приложение № 1 к 6-НДФЛ) по каждой ИФНС и убедитесь, что доходы по ставкам 13% и 15% теперь отображаются корректно, как это было задумано бухгалтером.
Этот метод позволяет добиться точного распределения доходов по ставкам в разрезе ИФНС, избегая автоматической пропорции программы.
Документ Операция учета НДФЛ также может быть использован для корректировки, но имеет свои особенности и ограничения. Мы рассмотрим, в каких случаях он применим.
Назначение документа:
Документ Операция учета НДФЛ предназначен для ручного ввода или корректировки данных по НДФЛ, которые не могут быть учтены стандартными документами начисления зарплаты или при внесении начальных остатков. Он позволяет корректировать исчисленный, удержанный и перечисленный НДФЛ.
Ограничения для нашей задачи:
Как отмечалось в форуме, для прямого указания *базы* дохода в разрезе налоговых инспекций с целью предотвращения пропорционального распределения, этот документ может быть не самым удобным. В нем нет возможности явно указать, какую часть дохода по конкретной ставке нужно отнести к определенной ИФНС для целей *распределения базы* по ставкам. Однако он может быть полезен для переноса уже *исчисленного, удержанного и перечисленного* НДФЛ между обособленными подразделениями, поскольку в нем предусмотрена колонка Обособленное подразделение.
Применение для переноса НДФЛ между подразделениями:
Если проблема не в распределении *базы* по ставкам, а в том, что уже исчисленный НДФЛ был ошибочно отнесен к другой ИФНС, мы можем использовать этот документ. Например, если сотрудник числится в разных подразделениях, и произошел "перекос" между доходами и налогом в разрезе подразделений, хотя в целом доход и налог определяются верно.
В документе Операция учета НДФЛ мы можем:
Таким образом, мы можем "перебросить" уже рассчитанный налог между ИФНС, но это не решает проблему *пропорционального распределения базы* по разным ставкам, описанную выше.
Если ручные корректировки через "Перенос данных" кажутся слишком трудоемкими или требуется более гибкое и автоматизированное решение, можно рассмотреть вариант доработки стандартного алгоритма ЗУП с помощью расширения. Мы проанализируем, как это можно реализовать.
Понимание стандартного алгоритма:
Проблема кроется в процедуре ОбработатьСтрокиДоходов общего модуля УчетНДФЛЗаполнениеОтчетности. Именно в ней происходит пропорциональное распределение доходов. В частности, строка кода выглядит примерно так:
СуммаСтроки = Окр(ОблагаемыйДоходДоПредела * (СтрокаТаблицы.СуммаДохода - СтрокаТаблицы.СуммаВычета) / ОблагаемыйДоходЗаДень, 2, 1);
Это означает, что сумма строки дохода рассчитывается как доля от общего облагаемого дохода до предела, умноженная на отношение текущего дохода (за вычетом вычетов) к общему доходу за день. Этот алгоритм применяется, когда найдены доходы на дату "перелома" шкалы ставок.
Идея доработки:
Мы можем "сказать" ЗУП, что если пользователь вручную указал конкретное распределение доходов по ставкам для определенной ИФНС в регистрах, то программа должна использовать эти данные, а не свой пропорциональный алгоритм.
Для этого мы можем использовать реквизит Ставка в регистре СведенияОДоходахНДФЛ. Хотя этот реквизит обычно не заполняется документами начисления из-за потенциальных корректировок и проблем с перепроведением, мы можем вручную внести в него данные через "Перенос данных" и использовать их в нашем расширении.
Шаги по созданию расширения:
Создаем расширение: В режиме конфигуратора создаем новое расширение для конфигурации ЗУП.
Захватываем процедуру: Добавляем в расширение общий модуль УчетНДФЛЗаполнениеОтчетности и в нем захватываем для изменения процедуру ОбработатьСтрокиДоходов (с использованием директивы &Перед, &После или &Вместо, в зависимости от необходимой логики).
Реализуем новую логику:
В начале процедуры ОбработатьСтрокиДоходов мы можем добавить проверку:
СведенияОДоходахНДФЛ для текущего сотрудника, даты получения дохода и регистрации в налоговом органе.Ставка заполнен (т.е. не равен нулю или специальному значению "Неопределено"). Это будет индикатором того, что пользователь вручную указал желаемое распределение.СуммаСтроки и прекращаем выполнение стандартного пропорционального расчета.Примерная логика (псевдокод):
&Вместо
Процедура ОбработатьСтрокиДоходов(ТаблицаДоходов, ... )
// Проверяем, есть ли ручные записи с явно указанной ставкой
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СведенияОДоходахНДФЛ.СуммаДохода КАК СуммаДохода,
| СведенияОДоходахНДФЛ.Ставка КАК Ставка
|ИЗ
| РегистрНакопления.СведенияОДоходахНДФЛ КАК СведенияОДоходахНДФЛ
|ГДЕ
| СведенияОДоходахНДФЛ.Сотрудник = &Сотрудник
| И СведенияОДоходахНДФЛ.ДатаПолученияДохода = &ДатаПолученияДохода
| И СведенияОДоходахНДФЛ.РегистрацияВНалоговомОргане = &РегистрацияВНалоговомОргане
| И СведенияОДоходахНДФЛ.Ставка <> 0"; // Или другое условие для проверки заполненности Ставки
Запрос.УстановитьПараметр("Сотрудник", ТекущийСотрудник);
Запрос.УстановитьПараметр("ДатаПолученияДохода", ТекущаяДатаДохода);
Запрос.УстановитьПараметр("РегистрацияВНалоговомОргане", ТекущаяРегистрация);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество() > 0 Тогда
// Если найдены ручные записи, используем их
Для Каждого СтрокаТаблицы Из ТаблицаДоходов Цикл
НайденнаяСтрока = РезультатЗапроса.НайтиСтроки(Новый Структура("Ставка", СтрокаТаблицы.Ставка));
Если НайденнаяСтрока.Количество() > 0 Тогда
СтрокаТаблицы.СуммаДохода = НайденнаяСтрока[0].СуммаДохода; // Присваиваем вручную заданную сумму
Иначе
// Если для какой-то ставки нет ручной записи, возможно, нужно оставить 0 или пересчитать
СтрокаТаблицы.СуммаДохода = 0;
КонецЕсли;
КонецЦикла;
Иначе
// Если ручных записей нет, выполняем стандартный алгоритм ЗУП
// ... здесь должен быть скопирован или вызван оригинальный код процедуры ...
ОригинальнаяПроцедураОбработатьСтрокиДоходов(ТаблицаДоходов, ... );
КонецЕсли;
КонецПроцедуры
Важно: При использовании &Вместо нужно полностью воспроизвести или вызвать оригинальную логику, если условие не выполняется. Это требует глубокого понимания оригинальной процедуры.
Заполнение вручную: После внедрения такого расширения, для тех случаев, где требуется точное распределение, бухгалтер или расчетчик будет использовать документ Перенос данных для внесения записей в регистр СведенияОДоходахНДФЛ, явно указывая суммы дохода для каждой ставки (13% и 15%) и каждой ИФНС. Расширение увидит эти записи и применит их.
Этот подход дает максимальный контроль и позволяет избежать ручных сдвигов дат, но требует навыков разработки и тщательного тестирования расширения.
Чтобы минимизировать подобные проблемы, рассмотрим следующие аспекты:
Настройка обособленных подразделений: Убедитесь, что все обособленные подразделения корректно зарегистрированы в справочнике Организации или Подразделения (если они выделены на отдельный баланс) с указанием соответствующих КПП и ОКТМО. Данные регистрации в налоговом органе (ИФНС) являются ключевыми для формирования отчетности.
Хронология документов: Старайтесь соблюдать строгую хронологию при закрытии документов месяца: начисление зарплаты → выплата аванса → окончательная выплата → перечисление НДФЛ. Непоследовательный ввод или исправления задним числом могут усложнить учет.
Предварительный анализ: Перед окончательной выплатой зарплаты и формированием отчетности, используйте "тестовые" формирования отчетов (например, "Перерасчет НДФЛ", "Анализ НДФЛ по месяцам") для выявления потенциальных ошибок или расхождений.
Проверка регистров: При возникновении расхождений, всегда проверяйте данные в регистрах накопления РасчетыНалогоплательщиковСБюджетомПоНДФЛ, НДФЛКПеречислению и СведенияОДоходахНДФЛ. Именно они являются источником данных для отчетности.
Консультации с бухгалтером: Взаимодействуйте с бухгалтером, который хорошо понимает правила распределения доходов и НДФЛ по обособленным подразделениям, чтобы точно определить, какое распределение является "правильным" с точки зрения налоговой инспекции.
Мы видим, что проблема некорректного распределения доходов по ставкам в 2-НДФЛ в ЗУП КОРП при наличии обособленных подразделений и прогрессивной шкалы НДФЛ является комплексной. Существуют как простые "обходные" пути через манипуляции с датами в "Переносе данных", так и более сложные, но гибкие решения с доработкой функционала программы через расширения. Выбор метода зависит от ваших навыков, требований к точности и готовности к изменениям в конфигурации.
← К списку