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