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