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