При работе в программе 1С:Зарплата и управление персоналом 3.1 (особенно после процедуры переноса данных или ввода начальных остатков) пользователи часто сталкиваются с неприятной ситуацией. При оформлении увольнения сотрудника в документе на вкладке "Корректировка выплаты" неожиданно появляется строка "Зачтено излишне удержанного НДФЛ" на странную сумму, которая не поддается быстрой логической проверке.
В этой статье мы подробно разберем, почему возникает эта проблема, как работает механизм автоматического перерасчета на платформе 1С:Предприятие 8.3, и какими способами можно навсегда избавиться от некорректных строк в документах увольнения.
Для начала давайте разберем саму экономическую и техническую суть строки "Зачтено излишне удержанного НДФЛ". Эта строка выполняет роль регулятора взаиморасчетов. Если программа обнаруживает, что в прошлых периодах у сотрудника было удержано налога больше, чем исчислено, она фиксирует переплату. При расчете очередного налога в текущем периоде (в нашем случае — в январе при увольнении) программа автоматически уменьшает сумму удержания текущего налога на величину этой переплаты. То есть происходит зачет.
Основная сложность заключается в том, что сумма этой корректировки может никак не коррелировать с начислениями текущего месяца. Программа обращается к историческим данным в регистрах накопления. Пересортица чаще всего возникает в регистре Расчеты налогоплательщиков с бюджетом по НДФЛ из-за расхождений в следующих разрезах:
Перенос данных на стыке налоговых периодов.Давайте рассмотрим, какими методами мы можем решить эту проблему как на пользовательском, так и на программном уровне.
В программе 1С:ЗУП 3.1 реализован мощный механизм отслеживания изменений, который автоматически регистрирует необходимость пересчета зарплаты или налогов за прошлые периоды, если были изменены влияющие на это данные. Зачастую именно эти зарегистрированные записи инициируют "всплытие" старого НДФЛ при увольнении.
Давайте проверим и очистим эти записи по шагам:
После удаления записи из очереди перерасчетов вернемся в документ увольнения и попробуем пересчитать сотрудника. Во многих случаях этого достаточно, чтобы вкладка корректировок очистилась.
Если простая отмена перерасчета не помогает, и при повторном заполнении документа сумма корректировки возвращается, нам необходимо устранить первопричину — пересортицу в самом регистре. Проанализируем движения по регистру Расчеты налогоплательщиков с бюджетом по НДФЛ.
Для этого мы можем воспользоваться универсальным отчетом или специализированным отчетом по НДФЛ, сгруппировав данные по сотруднику, ОКТМО, ставкам налога и категориям дохода за весь предыдущий период. Наша задача — найти, где именно сумма удержанного налога (Расход) превысила сумму исчисленного налога (Приход).
После того как расхождение найдено, мы можем скорректировать его:
Перенос данных с кодом регистра НДФЛ.Перенос данных текущей датой (или датой ввода остатков) и сделаем корректировочные записи: по одной строке сделаем "плюс" на недостающую аналитику, по другой — "минус", тем самым "схлопнув" пересортицу.Если нам нужно срочно рассчитать и выдать сотруднику расчет при увольнении, а детально разбираться в регистрах прошлых лет нет времени, мы можем временно отключить механизм автоматического перерасчета в настройках программы.
Для этого выполним следующие действия:
Давайте заглянем под капот конфигурации и проанализируем, почему документ увольнения ведет себя так бескомпромиссно. В ЗУП 3.1 алгоритмы перерасчета при увольнении жестко зашиты в коде конфигурации.
Обратим внимание на общий модуль ПерерасчетЗарплаты, а именно на функцию ДанныеПерерасчетаПриУвольненииСотрудника. При проведении документа программа выполняет специальный запрос к табличным частям начислений и перерасчетов документа увольнения, пытаясь определить периоды, которые лежат раньше даты увольнения, и принудительно регистрирует необходимость перерасчета.
Посмотрим на пример логики этого запроса:
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| УвольнениеНачисления.Сотрудник КАК Сотрудник,
| УвольнениеНачисления.ПериодДействия КАК ПериодДействия,
| ИСТИНА КАК ПерерасчетНачислений
|ИЗ
| Документ.Увольнение.Начисления КАК УвольнениеНачисления
|ГДЕ
| УвольнениеНачисления.Ссылка = &Ссылка
| И УвольнениеНачисления.ПериодДействия < &ПериодДействия
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| УвольнениеНачисленияПерерасчет.Сотрудник,
| УвольнениеНачисленияПерерасчет.ПериодДействия,
| ИСТИНА
|ИЗ
| Документ.Увольнение.НачисленияПерерасчет КАК УвольнениеНачисленияПерерасчет
|ГДЕ
| УвольнениеНачисленияПерерасчет.Ссылка = &Ссылка
| И УвольнениеНачисленияПерерасчет.ПериодДействия < &ПериодДействия";
Если в процессе внедрения или сопровождения базы вы понимаете, что типовое поведение системы по автоматическому подтягиванию прошлых периодов при увольнении мешает корректному ведению учета (например, из-за специфики исторического переноса данных), этот алгоритм можно скорректировать с помощью механизма расширений конфигурации. Мы можем переопределить поведение метода, добавив условие проверки или полностью исключив автоматическую регистрацию перерасчетов по НДФЛ для увольняемых сотрудников, если этого требуют внутренние регламенты учета компании.
Таким образом, мы детально разобрали все возможные варианты решения проблемы — от простых пользовательских манипуляций с сервисом перерасчетов до глубокого исправления регистров накопления и программного анализа логики проведения документов. Выбирайте наиболее подходящий для вашей ситуации способ и наводите порядок в учете НДФЛ!