При работе в программе 1С:Зарплата и Управление Персоналом 2.5 пользователи часто сталкиваются с ситуацией, когда остаток отпуска сотрудника увеличивается не в первый день месяца и не в дату приема на работу, а в совершенно другие, на первый взгляд, произвольные даты. Особенно это заметно, когда рабочий год сотрудника был смещен из-за отпусков за свой счет или по уходу за ребенком.
В этой статье мы подробно разберем внутренние механизмы программы, проанализируем законодательную базу и выясним, почему «скачки» в количестве заработанных дней происходят именно так, как мы видим в справках по отпускам.
Для того чтобы понять логику программы, в первую очередь обратимся к нормативной базе. Согласно Правилам об очередных и дополнительных отпусках (которые продолжают действовать в части, не противоречащей Трудовому кодексу РФ), расчет стажа, дающего право на отпуск, производится по следующим правилам:
Проанализируем ситуацию, когда рабочий год сотрудника начинается 18-го числа. Программа прибавляет очередные 2,33 дня отпуска (стандартная норма для 28-дневного отпуска за один месяц) не в момент окончания календарного месяца, а когда сотрудник отработал очередные «полмесяца» сверх целого количества месяцев.
Если дата отсчета — 18-е число, то прибавив к ней 15 дней (половину месяца), мы получим как раз начало следующего месяца (2-е или 3-е число в зависимости от количества дней в календаре). Именно в этот момент 1С:ЗУП 2.5 считает, что порог пройден, и начисляет сотруднику право на следующий месяц отпуска.
Один из самых частых вопросов: почему у сотрудника при стаже чуть более 10 месяцев вдруг отображается полные 28 дней отпуска? Рассмотрим подробнее этот механизм.
Согласно законодательству РФ, сотрудники, проработавшие 11 месяцев в рабочем году, имеют право на получение полной компенсации или полного отпуска за этот год. В программе 1С:ЗУП 2.5 этот алгоритм реализован буквально:
Выясним причину отсутствия изменений в остатках в последние полтора месяца рабочего года. После того как 3-го числа (в нашем примере) программа начислила 28 дней, дальнейшего роста не происходит. Почему? Потому что лимит за текущий рабочий год уже достигнут. Следующая прибавка произойдет только тогда, когда начнется новый рабочий год и в нем будет отработано первые 15 дней.
Рассмотрим ситуацию, когда рабочий год сотрудника не совпадает с календарным или датой приема. В 1С:ЗУП 2.5 рабочий год может автоматически сдвигаться в следующих случаях:
Если такая ситуация произошла, дата начала рабочего года в регистре сведений Параметры периодов стажа (или аналогичных внутренних структурах программы) сдвигается вперед на количество «лишних» дней. Допустим, дата сместилась на 18-е число. Проанализируем, как это отразится на отчетах:
Программа ведет расчет от «плавающей» даты начала года. Если мы сформируем отчет на 2-е число месяца, программа увидит, что 15 дней с момента 18-го числа еще не прошли. Значит, месяц считается неполным и округляется «вниз». Если же сформировать отчет на 3-е число, условие «15 дней» выполняется, и количество дней отпуска мгновенно увеличивается.
Разберем конкретный кейс на основе данных из обсуждения. Предположим, рабочий год сотрудника длится с 18.07.2017 по 17.07.2018.
Шаг 1: На 02.07.2018 сотрудник отработал в текущем году 11 месяцев и 14 дней (с 18.07.17 по 17.06.18 — 11 месяцев, плюс дни с 18.06 по 02.07). Согласно правилам, 14 дней отбрасываются. Стаж равен 11 месяцам. Это дает право на определенное количество дней (например, 25.67).
Шаг 2: Наступило 03.07.2018. Теперь количество дней сверх 11 месяцев составило 15. Программа округляет стаж до 12 месяцев (или, следуя логике ТК, признает право на полный отпуск за 11 месяцев работы). Результат — скачок остатка до 28 дней.
Шаг 3: С 03.07.2018 по 17.07.2018 остаток остается неизменным (28 дней), так как за текущий год норма уже выбрана полностью.
Важно помнить, что в версии 2.5 расчет остатков часто происходит «на лету» при формировании отчетов или документов. Программа анализирует записи регистра ФактическиеОтпуска и сравнивает их с правом на отпуск, которое рассчитывается исходя из стажа в регистре ДанныеОРаботеСотрудников.
Проанализируем точность вычислений. Внутри системы количество дней может храниться с большой точностью (до 10 знаков после запятой), что позволяет избегать накопления ошибок округления при ежемесячном начислении 2.33333... дня. Однако в печатных формах и интерфейсе справки мы видим округленные значения. Формула всегда базируется на отношении:
(ГодоваяНормаОтпуска / 12) * КоличествоОтработанныхМесяцев
Где КоличествоОтработанныхМесяцев вычисляется с учетом того самого правила 15 дней.
Если вы сомневаетесь в правильности даты приращения дней, рекомендуем выполнить следующие действия:
Таким образом, странные на первый взгляд даты прибавления отпуска — это не ошибка программы, а прямое следствие реализации норм трудового законодательства и правил математического округления стажа. Совместная работа бухгалтера и программы требует понимания этих «контрольных точек», чтобы правильно отвечать на вопросы сотрудников о начисленных днях отдыха.