Почему сдвигаются даты права на отпуск за вредность при смене графика работы в 1С:ЗУП 3.1?

Бухгалтер 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет
← На главную

При работе в программе 1С:Зарплата и управление персоналом 3.1 многие пользователи сталкиваются с неожиданным поведением системы: после кадрового перевода сотрудника или изменения его графика работы даты возникновения прав на дополнительный отпуск за вредные условия труда в регистре сведений сдвигаются «задним числом». То есть меняются периоды, которые были заработаны еще до момента перевода. В этой статье мы подробно разберем, почему это происходит, как математически устроен данный алгоритм и как новые релизы программы делают этот расчет более прозрачным.

Юридические основания и логика расчета

Алгоритм расчета остатка отпуска за работу во вредных условиях труда за фактически отработанное время базируется на пункте 10 Инструкции Госкомтруда СССР и Президиума ВЦСПС № 273/П-20 от 21.11.1975. Согласно этому документу, в стаж работы, дающий право на получение дополнительного отпуска за вредность, засчитываются лишь те дни, в которые работник фактически был занят в этих условиях не менее половины рабочего дня, установленного для данного производства.

Количество дней дополнительного отпуска рассчитывается пропорционально проработанному времени. При этом стаж работы во вредных условиях рассчитывается путем деления фактически отработанных во вредных условиях дней на среднемесячное количество рабочих дней. В программе 1С:ЗУП этот расчет привязан к календарным годам, а не к рабочим годам сотрудника. Давайте выясним, почему так произошло.

В начале рабочего года сотрудника производственный календарь и индивидуальные графики работы на будущие периоды (особенно на следующий календарный год, если рабочий год переходящий) еще не утверждены. Программа физически не может знать среднемесячную норму дней на весь будущий рабочий год. Поэтому разработчики 1С реализовали расчет прав в разрезе календарных годов с последующим их суммированием. Первый расчетный период длится с даты приема по 31 декабря текущего года, а все последующие — строго в рамках календарного года (с 1 января по 31 декабря).

Почему происходит ретроспективный сдвиг дат?

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

Разбор математической модели на практическом примере

Рассмотрим детальный пример, чтобы понять логику программы. Для максимальной наглядности смоделируем ситуацию с использованием двух искусственных графиков работы:

  1. Первый график: рабочим днем является только 1-е число каждого месяца. Среднемесячная норма дней в году равна 1 дню.
  2. Второй график: рабочим днем является 1-е и 2-е число каждого месяца. Среднемесячная норма дней в году равна 2 дням.

Предположим, мы принимаем сотрудника 01.01.2018 на «вредную» позицию штатного расписания. Ему положено 12 дней дополнительного отпуска за вредность в год. В карточке отпуска установлен флаг «Предоставляется за фактически отработанное время». Первоначально сотруднику назначается первый график (с одним рабочим днем в месяце).

Посмотрим, как программа начисляет права на отпуск изначально. Поскольку норма составляет 1 день в месяц, для получения права на 1 день отпуска сотруднику необходимо отработать:

0.5 * СреднемесячнаяНорма = 0.5 * 1 = 0.5 дня

Так как сотрудник работает 1-го числа каждого месяца, отработав этот день полностью, он выполняет условие (1 > 0.5) и сразу получает право на отпуск за этот месяц. В регистре сведений ЗаработанныеПраваНаОтпуска записи будут формироваться строго 1-го числа каждого месяца. Все логично и предсказуемо.

Теперь проведем кадровый перевод с 01.03.2018 и переведем сотрудника на второй график (с 2 рабочими днями в месяце). Давайте проанализируем, как изменится картина после проведения этого документа:

Общее количество отработанных дней за весь календарный год составило:

2 + 20 = 22 рабочих дня

Рассчитаем новую среднемесячную норму рабочих дней за 2018 год:

22 дня / 12 месяцев = 1.833 дня в месяц

Теперь посмотрим, в какие даты сотрудник будет получать право на каждый последующий день отпуска с учетом новой среднемесячной нормы 1.833 дня. Для этого программа использует следующую математическую сетку:

  1. 1-й день отпуска: требуется отработать 0.5 * 1.833 = 0.92 дней. Округляем до ближайшего рабочего дня — это 1-й отработанный день (01.01.2018). Право на отпуск возникает 01.01.2018.
  2. 2-й день отпуска: требуется отработать 1.5 * 1.833 = 2.75 дней. Округляем — это 3-й отработанный день. Но за январь и февраль сотрудник отработал суммарно только 2 дня! Третий рабочий день наступает только 01.03.2018. Соответственно, право за февраль пропадает с даты 01.02.2018 и переносится на 01.03.2018!
  3. 3-й день отпуска: требуется отработать 2.5 * 1.833 = 4.58 дней. Это 5-й отработанный день (02.03.2018).
  4. 4-й день отпуска: требуется отработать 3.5 * 1.833 = 6.42 дней. Это 7-й отработанный день (02.04.2018).
  5. ... и так далее по цепочке.

В результате этого пересчета в отчете «Справка об остатках отпусков» мы увидим, что на 01.02.2018 право на отпуск пропало, а на более поздние даты оно сдвинулось. Это не ошибка программы, а прямое следствие заложенного математического алгоритма, который рассчитывает среднюю норму за календарный год динамически при изменении параметров графиков работы.

Прозрачность расчетов в современных релизах

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

Важные нюансы и ограничения механизма

При использовании данного механизма необходимо учитывать следующие особенности работы 1С:ЗУП 3.1:

  1. Исключение периодов отсутствия: При установленном флаге «Предоставляется за фактически отработанное время» из стажа на вредный отпуск исключаются абсолютно все периоды отсутствий, включая нахождение сотрудника в основном ежегодном отпуске. Из-за этого сотрудник, отработавший полный год, но сходивший в обязательный отпуск на 28 дней, физически не может накопить полные 11 месяцев вредного стажа, и программа начислит ему меньше дней вредного отпуска, чем положено за полный год.
  2. Учет работы в выходные и праздники: В программе существует зарегистрированная проблема, при которой дни работы во вредных условиях в праздничные или выходные дни (зарегистрированные соответствующим документом) могут не включаться в стаж для вредного отпуска автоматически.
  3. Привязка к системному виду отпуска: Описанный функционал полноценно работает только для предопределенного вида отпуска ОтпускЗаВредность. Для пользовательских (созданных копированием) видов отпусков данный алгоритм без доработок не применим.
← На главную