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