При оформлении отпусков расчетчики нередко сталкиваются с ситуацией, когда период ежегодного дополнительного отпуска выпадает на праздничные нерабочие дни, однако программа включает эти дни в оплачиваемый период. В соответствии со статьей 120 Трудового кодекса РФ, нерабочие праздничные дни, приходящиеся на период как основного, так и ежегодного дополнительного оплачиваемого отпуска, в число календарных дней отпуска не включаются и оплате не подлежат. Выясним причину такого поведения конфигурации «1С:Зарплата и управление персоналом 2.5» и разберем по шагам, как исправить настройки для корректного подсчета дней.
Чтобы понять, почему платформа может игнорировать праздники для дополнительного отпуска, проанализируем типовой программный код документа начисления отпуска. Логика программы разделена на два ключевых этапа: определение необходимости исключения праздников и непосредственно подсчет календарных дней через производственный календарь.
Посмотрим на функцию ВключатьПраздникиВПериодОтпуска, определяющую флаг учета праздничных дней:
Функция ВключатьПраздникиВПериодОтпуска(ВидОтпуска)
ВключатьПраздники = Ложь;
Если ТипЗнч(ВидОтпуска) = Тип("ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций") Тогда
ВключатьПраздники = НЕ ЗначениеЗаполнено(ВидОтпуска)
ИЛИ ОбщегоНазначенияЗК.ПолучитьЗначениеРеквизита(ВидОтпуска, "ОбозначениеВТабелеУчетаРабочегоВремени")
<> Справочники.КлассификаторИспользованияРабочегоВремени.ДополнительныйОтпуск;
КонецЕсли;
Если ТипЗнч(ВидОтпуска) = Тип("ПеречислениеСсылка.ПричиныОтсутствияНаРаботеВОрганизации") Тогда
ВключатьПраздники = ВидОтпуска <> Перечисления.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускЕжегодный;
КонецЕсли;
Возврат ВключатьПраздники;
КонецФункции
Обратим внимание на строгое условие: если вид отпуска задан планом видов расчета ОсновныеНачисленияОрганизаций, значение реквизита ОбозначениеВТабелеУчетаРабочегоВремени должно в точности совпадать с предопределенным элементом Справочники.КлассификаторИспользованияРабочегоВремени.ДополнительныйОтпуск. Если это условие не выполняется, переменная ВключатьПраздники принимает значение Истина, то есть праздничные дни включаются в отпуск.
Рассмотрим далее функцию КоличествоДнейОтпускаПоКалендарнымДням, которая выполняет вычисление:
Функция КоличествоДнейОтпускаПоКалендарнымДням(ДатаНачала, ДатаОкончания, ВключатьПраздники = Ложь)
Если НЕ ВключатьПраздники Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СУММА(РегламентированныйПроизводственныйКалендарь.КалендарныеДни) КАК КоличествоДней
|ИЗ
| РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
|ГДЕ
| РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= &ДатаНачала
| И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= &ДатаОкончания");
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
КоличествоДней = Выборка.КоличествоДней;
Иначе
ОбщегоНазначенияЗК.СообщитьОбОшибке("Проверьте заполнение производственного календаря!");
КоличествоДней = Неопределено;
КонецЕсли;
Иначе
КоличествоДней = (НачалоДня(ДатаОкончания) - НачалоДня(ДатаНачала)) / 86400 + 1;
КонецЕсли;
Возврат КоличествоДней;
КонецФункции
Из текста запроса видно: когда параметр ВключатьПраздники равен Ложь, программа обращается к регистру сведений РегламентированныйПроизводственныйКалендарь и суммирует ресурс КалендарныеДни. Для дней со статусом «Праздник» этот ресурс равен нулю, соответственно, они отбрасываются. Если же флаг равен Истина, дни вычисляются как простая математическая разница дат без обращения к календарю.
Разберем основной и самый частый источник проблемы — некорректное заполнение реквизитов вида начисления.
Если вид расчета настроен верно, но региональный праздник все равно входит в расчет, проанализируем заполнение общего производственного календаря базы.
РегламентированныйПроизводственныйКалендарь поле КалендарныеДни останется равным единице. Чтобы день исключился из отпуска, он должен иметь статус именно Праздник.Важное ограничение: в конфигурации редакции 2.5 производственный календарь является единым для всех организаций и подразделений информационной базы. Назначение регионального праздника сделает его нерабочим праздничным для всех сотрудников предприятия.
Рассмотрим альтернативные действия, если конфигурацию нельзя перенастраивать глобально из-за различий в регионах подразделений:
Количество дней на вкладке начислений доступно для прямого редактирования расчетчиком. Изменив значение с 6 на 4, мы получим верную сумму начисления отпускных без изменения исходного периода отсутствия сотрудника.