В практической работе расчетчика зарплаты и кадровика нередко возникает запутанная ситуация: сотрудница досрочно выходит из отпуска по уходу за ребенком (или отпуска по беременности и родам), оформляется ее кадровый перевод на другую должность, но программа 1С:Зарплата и управление персоналом 3.1 упорно отказывается начислять ей дни ежегодного отпуска. Месяцы идут, зарплата начисляется, табель заполняется верно («Явка»), а в справке по остаткам отпусков — мертвая тишина и старые замороженные данные.
В рамках этой статьи мы детально проанализируем, почему возникает этот сбой, как работают внутренние механизмы платформы 1С по расчету прав на отпуск, и пошагово разберем проверенные способы исправления этой ошибки.
Рассматриваемая нами проблема наиболее часто проявляется после переноса данных из старых конфигураций (например, с ЗУП 2.5 на ЗУП 3.1) или при оформлении нескольких кадровых документов одной датой.
---
Для начала разберем техническую сторону вопроса. В программе 1С:ЗУП 3.1 расчет остатков отпусков и заполнение регистра Заработанные права на отпуска происходят динамически («на лету») при формировании отчетов или проведении документов отпуска. Чтобы этот расчет корректно запустился, программе жизненно необходима так называемая «опорная точка» (дата-якорь), от которой алгоритм начнет отсчет рабочих лет сотрудника.
Обычно такой опорной точкой выступает дата приема на работу. Однако, если учет в программе ведется не с момента создания организации, а был перенесен из другой базы (например, на дату 01.06.2018), то опорной точкой должен стать документ ввода начальных данных — Начальная штатная расстановка или Ввод остатков отпусков.
Если на момент переноса данных сотрудница находилась в декретном отпуске и у нее фактически было накоплено 0 дней неиспользованного отпуска (все дни были успешно отгуляны до ухода в декрет), то при переносе данных запись по остаткам отпусков для нее часто вообще не создается. Программа «думает»: раз остаток нулевой, то и вносить в регистры ничего не нужно. Но именно это отсутствие записи лишает алгоритм отправной точки для дальнейших расчетов после выхода сотрудницы на работу.
---
Перед тем как переходить к исправлению остатков, нам необходимо убедиться, что программа «понимает», что сотрудник действительно работает, а не числится в декрете. Для этого проанализируем записи в регистре сведений Состояния сотрудников.
Чтобы проверить этот регистр, выполните следующие действия:
Состояния сотрудников.Давайте посмотрим, как должны выглядеть записи в этом регистре с помощью простого запроса к базе данных, который разработчики или администраторы могут запустить в консоли запросов:
ВЫБРАТЬ
СостоянияСотрудников.Сотрудник КАК Сотрудник,
СостоянияСотрудников.Состояние КАК Состояние,
СостоянияСотрудников.Период КАК ДатаНачала,
СостоянияСотрудников.ДействуетДо КАК ДатаОкончания
ИЗ
РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
ГДЕ
СостоянияСотрудников.Сотрудник.Ссылка = &СсылкаНаСотрудника
Если в регистре сразу после окончания декрета стоит состояние Работа (или пустое состояние, приравниваемое к работе), то с кадровым учетом все в порядке. Если же там до сих пор значится состояние Отпуск по уходу за ребенком, то проблема кроется в документах возврата.
Важное примечание по табелям: кадровики часто вручную исправляют обозначения в документе Табель с «ОЖ» (отпуск по уходу) на «Я» (явка), чтобы сотруднице начислялась зарплата. Но ручные правки табеля не меняют фактическое состояние сотрудника в системе! Если не проведен документ Возврат из отпуска по уходу, программа будет продолжать считать сотрудницу декретницей, а в этот период ежегодный отпуск по закону не накапливается.
---
Если кадровые документы проведены верно, состояния в регистре обновились, но права на отпуск по-прежнему не рассчитываются, мы применяем самое эффективное решение — принудительное создание «опорной точки» через ввод нулевого остатка.
Выполним следующие шаги:
Ввод остатков отпусков.После проведения этого документа в регистре Начальные остатки отпусков появится запись с нулевым значением, но с четко зафиксированным периодом. Программа мгновенно зацепится за эту дату и начнет рассчитывать положенные 2,33 дня в месяц со следующего же дня работы.
---
Еще одна частая причина сбоя — проведение документа Кадровый перевод непосредственно в день выхода из отпуска по уходу за ребенком. При создании кадрового перевода кадровики могут случайно задействовать механизмы изменения прав на отпуск.
Рассмотрим порядок проверки документа:
Кадровый перевод, которым сотрудница была переведена на новую должность в день выхода.Если этот флаг установлен, но табличная часть под ним пуста или заполнена некорректно, программа считает, что с даты этого перевода право сотрудника на основной отпуск аннулируется (становится равным 0 дней в год). Соответственно, начисление дней прекращается.
Как исправить: снимем этот флаг, если условия предоставления отпуска (28 календарных дней) не изменились. Если же они изменились (например, добавился вредный или дополнительный отпуск), то убедимся, что в табличной части четко указан основной отпуск и количество дней — 28.
---
Для полной уверенности в корректности данных проанализируем еще один важный регистр сведений — Положенные виды ежегодных отпусков. В нем фиксируется, какие именно виды отпусков и в каком объеме положены сотруднику в разрезе периодов.
Убедимся, что в данном регистре для нашего сотрудника:
Используется установлена галочка (значение Истина).Если записи отсутствуют или флаг использования снят, то это сигнализирует о незавершенности кадрового оформления. Потребуется перепровести документы Начальная штатная расстановка или Прием на работу в хронологическом порядке.
---
Чтобы избежать подобных проблем с учетом отпусков у декретниц в будущем, рекомендуем придерживаться следующих правил при работе в 1С:ЗУП 3.1:
Ввод остатков отпусков с нулевым остатком на дату начала ведения учета.Используя предложенные методы, вы сможете быстро восстановить правильный учет прав на отпуск ваших сотрудников и избежать расхождений при сдаче отчетности и расчете компенсаций.