Почему в 1С:ЗУП 3 сотруднику в отпуске по уходу продолжает увеличиваться остаток отпуска?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При переносе данных из конфигурации «Зарплата и Управление Персоналом», редакция 2.5 в редакцию 3.1 пользователи и специалисты часто сталкиваются с ситуацией: сотрудницам, находящимся в отпуске по уходу за ребенком, программа каждый месяц продолжает начислять по 2,33 дня основного отпуска. В соответствии со статьей 121 ТК РФ время отпуска по уходу за ребенком до достижения им установленного законом возраста не включается в стаж работы, дающий право на ежегодный основной оплачиваемый отпуск. Разберем детально, почему возникает данная коллизия в ЗУП 3.1 и какими способами можно восстановить корректный расчет остатков отпусков и оценочных обязательств (резервов).

Анализ причин сбоя в алгоритме расчета

Проанализируем внутреннее устройство подсистемы учета отпусков в 1С:ЗУП 3.1. В отличие от редакции 2.5, где остатки хранились накопительно, в редакции 3.1 заработанные права рассчитываются динамически и кэшируются в регистре сведений ЗаработанныеПраваНаОтпуска. За это отвечает регламентное задание «Расчет заработанных отпусков», вызывающее процедуру:


// Общий модуль ОстаткиОтпусков
// Обслуживает регламентное задание РасчетЗаработанныхОтпусков.
// Производит заполнение регистра "ЗаработанныеПраваНаОтпуска".
Процедура РасчетЗаработанныхОтпусков(МассивСотрудников = Неопределено, Знач ДатаРасчета = Неопределено, ЭтоРасчетПриУвольнении = Ложь) Экспорт

Причины некорректного поведения системы кроются в следующем:

  1. Перекрытие состояний документом ввода остатков. При типовом переносе создается документ Начальная штатная расстановка (или записи документа Перенос данных) на дату среза (например, 01.01). Данный документ фиксирует статус сотрудника как «Работа» на дату начала ведения учета. Это состояние вытесняет предыдущую кадровую историю в регистре сведений СостоянияСотрудников (и ДанныеСостоянийСотрудников). В результате алгоритм воспринимает сотрудника как работающего с даты ввода начальных остатков.
  2. Несоответствие дат регистратора и периода отсутствия. Если кадровый документ Отпуск по уходу за ребенком перенесен с датой начала ранее даты начала эксплуатации базы, а начальные остатки введены позже, процедура расчета сдвига рабочих лет считает сотрудника работающим с момента ввода остатков и ежемесячно добавляет по 2,33 дня.
  3. Искажение расчета резервов отпусков. Из-за искусственного завышения дней отпуска механизм начисления оценочных обязательств не только увеличивает сумму резерва, но и пытается рассчитать средний заработок заново по текущей базе, вместо того чтобы зафиксировать его на момент реального ухода в декрет.

Способ 1. Корректировка через документ «Ввод остатков отпусков»

Рассмотрим самый надежный способ выравнивания отпускного стажа без вмешательства в программный код. Разберем порядок действий по шагам:

  1. Откроем документ Начальная штатная расстановка и исключим из него ввод прав и остатков отпусков по декретницам (очистим соответствующую табличную часть).
  2. Создадим отдельный документ Ввод остатков отпусков на дату начала эксплуатации информационной базы.
  3. В документе укажем фактические рабочие периоды сотрудника и накопленный до ухода в декрет остаток дней.
  4. В графе «Дней отсутствия» обязательно укажем общее количество дней нахождения в отпуске по уходу за ребенком на дату ввода остатков. Это сместит окончание рабочего года сотрудника на требуемый период, и программа перестанет начислять лишние дни.

Способ 2. Корректировка даты перенесенного документа «Отпуск по уходу за ребенком»

Если в базе присутствуют перенесенные документы Отпуск по уходу за ребенком, проанализируем их реквизиты:

  1. Откроем документ Отпуск по уходу за ребенком и изменим значение реквизита «Месяц» на первый месяц ведения учета в новой базе (например, январь года старта).
  2. Проверим правильность расчета пособия (при необходимости зафиксируем суммы и средний заработок вручную).
  3. Перепроведем документ. Это перезапишет движения в регистре сведений СостоянияСотрудников актуальной датой и установит приоритет отсутствия над плановой занятостью.

Способ 3. Очистка плановых начислений в начальных данных

Проверим строки в документе Начальная штатная расстановка. Для сотрудников, фактически находящихся в отпуске по уходу за ребенком, необходимо удалить плановые начисления (оклады, надбавки), оставив только строку пособия либо полностью очистив табличную часть начислений. Это предотвратит фиксацию рабочего состояния сотрудника в служебных регистрах.

Актуализация данных и проверка результата

После применения любого из способов необходимо обновить кэш заработанных прав на отпуска. Выполним следующие шаги:

  1. Запустим регламентное задание «Расчет заработанных отпусков» через панель администрирования регламентных и фоновых заданий либо откроем карточку сотрудника и сформируем отчет «Справка об остатках отпусков». Формирование справки инициирует автоматический пересчет и перезапись регистра сведений ЗаработанныеПраваНаОтпуска.
  2. Убедимся, что в сформированной справке дата окончания текущего рабочего года сместилась на весь период нахождения в отпуске по уходу, а итоговый остаток зафиксирован и больше не увеличивается на 2,33 дня в месяц.
← На главную