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