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