При работе с типовой конфигурацией 1С:Зарплата и Управление Персоналом 3.1 (российская версия) специалисты часто сталкиваются с необходимостью адаптации программы под законодательство других стран (например, Таджикистана, Казахстана или Узбекистана). Одной из наиболее сложных задач является изменение алгоритма расчета НДФЛ. В ряде стран налогооблагаемая база для подоходного налога определяется не из всей суммы начисления, а за вычетом обязательных удержаний, таких как пенсионные взносы или социальные налоги.
В этой статье мы подробно разберем, как реализовать логику, при которой расчетная база для НДФЛ формируется по формуле: Оклад - Пенсионный взнос - Прочие разрешенные удержания. Мы рассмотрим как методические приемы без изменения кода, так и технические способы реализации через расширение конфигурации.
Рассмотрим ситуацию на примере Республики Таджикистан. Согласно местному налоговому кодексу, расчет НДФЛ производится следующим образом:
В российской версии 1С:ЗУП 3.1 алгоритм расчета НДФЛ жестко ориентирован на Налоговый кодекс РФ, где страховые взносы платит работодатель «сверху» фонда оплаты труда, и они никак не уменьшают налоговую базу сотрудника. Поэтому «простой галочкой» в настройках программы изменить этот порядок невозможно. Разберем доступные пути решения.
Проанализируем самый быстрый способ, который позволяет уменьшить базу НДФЛ программными средствами настройки начислений. Суть заключается в создании специального вида расчета, который будет «откусывать» часть базы перед расчетом налога.
Для этого выполним следующие шаги:
Оклад * 0.01), но со знаком минус.Важный нюанс: Этот метод является «обходным». Главный его минус заключается в том, что регламентированная отчетность (справки о доходах, налоговые регистры) будет показывать уменьшенную общую сумму дохода, а не доход и вычет по отдельности. Если для вашей страны критично разделение «Доход» и «Вычет», перейдем ко второму варианту.
Более корректный с точки зрения методологии 1С путь — использование справочника Виды вычетов НДФЛ. Вы можете зарегистрировать сумму пенсионного взноса как налоговый вычет к конкретному доходу.
Рассмотрим алгоритм действий:
Операция учета НДФЛ или фиксировалась в регистре накопления СведенияОДоходахНДФЛ в поле «Вычет».Начисление зарплаты и взносов.Этот способ позволяет сохранить корректную сумму начисленного дохода в отчетах, при этом база для исчисления налога будет рассчитана правильно.
Если проект требует полной автоматизации без ручных манипуляций, проанализируем возможность изменения программного кода. Выясним причину, по которой это сложно: расчет НДФЛ в ЗУП 3.1 реализован через сложные запросы и временные таблицы в общих модулях.
Для реализации «ломки» конфигурации наиболее правильно использовать Расширение, чтобы не снимать основную конфигурацию с поддержки. Нам необходимо переопределить логику в модуле УчетНДФЛ.
Разберем примерную схему кода, которую необходимо внедрить в процедуру, отвечающую за сбор данных для налогообложения:
// В расширении перехватываем процедуру расчета базы
&После("СформироватьДанныеДляРасчетаНДФЛ")
Процедура Расширение_СформироватьДанныеДляРасчетаНДФЛ(ПараметрыРасчета, РезультатТаблица)
// Проанализируем таблицу с начислениями
Для Каждого СтрокаДохода Из РезультатТаблица Цикл
// Находим сумму удержанного пенсионного взноса для данного сотрудника
СуммаПенсионного = НайтиСуммуУдержания(СтрокаДохода.Сотрудник, СтрокаДохода.МесяцНалоговогоПериода);
// Вычитаем сумму взноса из облагаемого дохода
Если СуммаПенсионного <> 0 Тогда
СтрокаДохода.Результат = СтрокаДохода.Результат - СуммаПенсионного;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Важно: При таком подходе вы меняете саму суть работы движка 1С. Последующие обновления конфигурации могут изменить структуру временных таблиц РезультатТаблица, поэтому код расширения потребует регулярного контроля со стороны программиста.
Проанализируем ситуацию с отчетностью после внесения изменений. Важно понимать, что типовые отчеты (например, 2-НДФЛ или налоговый регистр) будут продолжать искать данные в стандартных регистрах. Если вы просто «откусили» базу в коде при расчете, отчетность может «поехать» — сумма налога не будет соответствовать сумме дохода, умноженной на ставку.
Поэтому при кастомизации под Таджикистан или другие страны СНГ рекомендуем:
Расширения, фиксируя все изменения в налоговых регистрах (РасчетыНалогоплательщиковСБюджетомПоНДФЛ и др.), чтобы обеспечить сходимость данных в будущем.Выясним итог: наиболее эффективным и безопасным методом для ЗУП 3.1 является использование механизма налоговых вычетов, так как он заложен в архитектуру программы и позволяет легально уменьшать налоговую базу без нарушения логики проведения документов.