Рассмотрим нестандартную, но весьма актуальную ситуацию, с которой сталкиваются пользователи программ 1С:ERP и 1С:ЗУП. Сотрудник был мобилизован ровно год назад, его трудовой договор приостановлен. Аудиторы справедливо требуют, чтобы резерв по отпускам продолжал накапливаться, поскольку стаж не прерывается. Однако при очередном заполнении документа начисления резервов система берет и полностью списывает (стонирует) весь накопленный резерв по данному сотруднику. Проанализируем эту ситуацию, выясним техническую причину и разберем по шагам доступные пути решения.
Прежде чем переходить к алгоритмам 1С, выясним, как это должно работать по закону. Согласно ст. 351.7 ТК РФ, в период приостановления действия трудового договора за мобилизованным сотрудником сохраняется стаж, дающий право на ежегодный основной оплачиваемый отпуск. Это означает, что обязательство работодателя по будущей оплате отпуска каждый месяц только растет (в среднем на 2.33 дня за месяц).
Если организация использует инвентаризационный метод расчета (МСФО), сумма резерва должна пересчитываться ежемесячно исходя из актуального остатка дней и текущего среднего заработка.
Проанализируем алгоритм работы документа НачислениеРезервовПоОплатеТруда при использовании метода МСФО. Логика расчета резерва по каждому работнику выглядит как расчет компенсации при увольнении:
Сумма резерва = Остаток неиспользованных дней отпуска * Среднедневной заработок (СДЗ)
Проблема кроется во втором множителе — среднем заработке. Посмотрим на хронологию событий:
СДЗ = 0.С математической точки зрения происходит следующее: у сотрудника накопилось, к примеру, 40 дней отпуска, но средний заработок стал нулевым. Система умножает 40 на 0 и получает итоговое обязательство равное нулю. Поскольку ранее был накоплен резерв на определенную сумму, программа автоматически формирует сторнирующие движения (красные суммы), чтобы привести сальдо регистра к вычисленному нулю.
В отличие от документа Отпуск, который по Постановлению №922 способен "пробрасывать" расчетный период еще дальше в прошлое (на предшествующий период, равный расчетному), старые механизмы расчета резервов имеют более упрощенный код и жестко ограничены 12 месяцами.
Рассмотрим подробнее несколько вариантов выхода из сложившейся ситуации, от самых правильных до компромиссных.
Разработчики 1С признали описанное поведение ошибочным. В новых версиях конфигураций (например, начиная с веток ERP 2.5.15 и ЗУП 3.1.27) были внесены существенные правки в механизмы расчета среднего заработка для резервов. Если вы используете старые релизы (например, 2.5.12), настоятельно рекомендуем обновиться. В новых версиях период приостановки договора корректно обрабатывается как "период-исключение", и система успешно находит исторический заработок даже спустя год.
Если обновление в данный момент невозможно, воспользуемся ручными инструментами. В новых механизмах учета резервов (с 2023 года) появился специализированный документ КорректировкаОстатковРезервовОтпусков.
Если вы готовы вмешаться в код конфигурации, можно модифицировать процедуру сбора данных для среднего заработка при расчете резервов. Разберем примерную логику необходимой доработки через расширение:
// Псевдокод возможной доработки в расширении
&Вместо("РассчитатьСреднийЗаработокДляРезервов")
Процедура Расш_РассчитатьСреднийЗаработокДляРезервов(ПараметрыРасчета)
// Вызов типового алгоритма
ПродолжитьВызов(ПараметрыРасчета);
// Проверяем результат
Если ПараметрыРасчета.СреднийЗаработок = 0 И ЯвляетсяМобилизованным(ПараметрыРасчета.Сотрудник) Тогда
// Сдвигаем расчетный период на год назад
НоваяДатаНачала = ДобавитьМесяц(ПараметрыРасчета.ДатаНачала, -12);
НоваяДатаОкончания = ДобавитьМесяц(ПараметрыРасчета.ДатаОкончания, -12);
// Повторный расчет по смещенному периоду
ПараметрыРасчета.СреднийЗаработок = ПолучитьБазуЗаПериод(НоваяДатаНачала, НоваяДатаОкончания);
КонецЕсли;
КонецПроцедуры
Этот подход гарантирует, что система не обнулит показатель СреднедневнойЗаработок, и резерв продолжит плавно увеличиваться каждый месяц по мере роста дней отпуска.
Рассмотрим альтернативный бухгалтерский выход. Метод МСФО конфликтует с ситуацией из-за своей "инвентаризационной" природы (каждый месяц пересчет с нуля). Нормативный метод, напротив, рассчитывает резерв как фиксированный процент от начисленного ФОТ в текущем месяце.
Поскольку у мобилизованного сотрудника текущий ФОТ равен нулю, по нормативному методу в резерв просто ничего не добавится. Но, что самое главное, накопленная ранее сумма не спишется. Переход на нормативный метод исключает саму возможность возникновения подобных математических "перевертышей" с обнулением базы, хотя требует согласования с учетной политикой организации.
Резюме: Не пугайтесь красных сумм в документе резервов — это предсказуемое математическое следствие обнуления расчетной базы спустя год. Выберите наиболее подходящий вариант (в идеале — обновление на актуальный релиз) и обеспечьте корректный учет обязательств перед мобилизованными сотрудниками.