При оформлении ежегодного отпуска в программе 1С:Зарплата и управление персоналом 3.1 бухгалтеры и кадровики часто сталкиваются с ситуацией, когда программа автоматически подставляет в поле «Предоставляется за период работы» даты, соответствующие календарному году (например, с 01.01.2022 по 31.12.2022), хотя сотрудник работает в организации уже несколько лет. Рассмотрим, почему это происходит, как программа рассчитывает эти периоды и что нужно сделать, чтобы исправить ошибку, особенно если она возникла после переноса данных из версии 2.5.
Для начала разберем теоретическую базу, на которой строится алгоритм 1С. В отличие от многих других кадровых показателей, ежегодный основной оплачиваемый отпуск предоставляется не за календарный год, а за рабочий год. Проанализируем статью 121 ТК РФ, которая является ключевой в этом вопросе.
Рабочий год — это период в 12 месяцев со дня вступления сотрудника в трудовые отношения. Например, если сотрудник принят 03.07.2017, его первый рабочий год — с 03.07.2017 по 02.07.2018. Все последующие периоды должны отсчитываться строго от этой даты. Однако рабочий год может смещаться (пролонгироваться). Выясним основные причины такого смещения:
Если у сотрудника были такие события, дата окончания рабочего года сдвигается на количество дней отсутствия, и следующий рабочий год начнется уже не с 3 июля, а позже. Именно эту сложную логику пытается реализовать программа 1С.
Рассмотрим ситуацию: сотрудник работает с 2017 года, но в документе «Отпуск» за 2022 год программа ставит период 01.01.2022 — 31.12.2022. Проанализируем причину такого поведения системы. Чаще всего это происходит по следующим техническим причинам:
1. Обрыв истории при переносе данных. Если вы переходили с 1С:ЗУП 2.5 на 3.1, программа переносит остатки отпусков специальным документом Ввод остатков отпусков. Если на момент переноса (например, на 01.01.2022) у сотрудника остаток отпуска был равен нулю (он все отгулял), разработчики типовых правил переноса могли допустить ситуацию, когда в документе ввода остатков не фиксируется дата начала и окончания последнего рабочего года. В этом случае 1С:ЗУП 3.1 «теряет» точку опоры и начинает отсчитывать новый рабочий год с даты документа ввода остатков (с 01.01.2022).
2. Логика «нулевого остатка». Программа всегда ищет самый ранний период, за который у сотрудника остались неиспользованные дни. Если по данным регистров Фактические отпуска за все прошлые годы остаток равен нулю, система переходит к текущему рабочему году. Если история периодов в базе повреждена, текущий рабочий год по умолчанию приравнивается к календарному, что является методической ошибкой.
Разберем по шагам, как привести данные в порядок, чтобы бухгалтер не вносил даты вручную в каждом документе.
Шаг 1. Проверка отчета «Справка об остатках отпусков»
Прежде всего, сформируем отчет «Справка об остатках отпусков» (находится в разделе Кадры — Кадровые отчеты). Посмотрим, как программа видит рабочие годы сотрудника. Если вы видите, что после 2021 года в справке внезапно возникает период с 01.01.2022, значит, данные в регистры записаны неверно.
Шаг 2. Корректировка документа «Ввод остатков отпусков»
Найдем документ Ввод остатков отпусков, которым данные попали в систему. Даже если остаток на дату ввода (например, 31.12.2021) равен нулю, в табличной части обязательно должен быть указан рабочий год. Рассмотрим пример:
Это даст программе понять, что отсчет следующего периода должен идти от 03.07.2021, а не от начала календарного года.
Шаг 3. Исправление правил переноса (для разработчиков)
Если проблема массовая и вы только планируете или недавно сделали перенос, стоит обратить внимание на код обработки переноса. Как выяснилось на практике, если в ЗУП 2.5 остаток был 0, документ в 3.1 создавался пустым без привязки к датам рабочего года. Выясним, как это можно исправить в правилах:
// Пример логики исправления в правилах переноса
Если ОстатокДнейОтпуска == 0 Тогда
// Даже при нулевом остатке необходимо передать структуру периода
СтруктураОстатка.ДатаНачалаРабочегоГода = ПоследняяДатаНачалаИзЗУП25;
СтруктураОстатка.ДатаОкончанияРабочегоГода = ПоследняяДатаОкончанияИзЗУП25;
КонецЕсли;
Необходимо убедиться, что даты начала и окончания последнего закрытого рабочего года переносятся в документ Ввод остатков отпусков независимо от значения самого остатка.
Часто возникает вопрос: почему программа ставит период будущего года, если сотрудник еще не отработал его? Посмотрим на это с точки зрения закона. Согласно ст. 122 ТК РФ, право на использование отпуска за первый год работы возникает у работника по истечении шести месяцев его непрерывной работы. За второй и последующие годы работы отпуск может предоставляться в любое время рабочего года в соответствии с графиком отпусков.
Таким образом, если сотрудник в январе 2022 года просит 6 дней отпуска, при этом за рабочий год 2021-2022 он еще ничего не гулял, программа правильно поставит период этого рабочего года (например, с 03.07.2021 по 02.07.2022). Это отпуск авансом, и это законно. Ошибкой является именно подстановка дат 01.01.2022 — 31.12.2022, так как они игнорируют реальный стаж сотрудника в организации.
Подведем итоги. Если в 1С:ЗУП 3.1 период работы в отпуске заполняется как календарный год:
Ввод остатков отпусков. Если он пустой из-за нулевого остатка при переносе — заполните в нем границы последнего рабочего года.Фактические отпуска. Любые ручные правки в документах Отпуск без исправления первопричины (остатков) приведут к накоплению ошибок в будущем.Своевременная проверка «Справки об остатках отпусков» поможет вам избежать конфликтов с проверяющими органами и обеспечит корректное заполнение кадровых документов.