Аналогичная обработка уже выложена от Игоря Фелькера (Brawler):
Похожий функционал также есть у обработки Романа Адырова (noon):
Для формирования отчета нужно ввести Сотрудника и Дату, на которую буду сформированы остатки. При их изменении отчет формируется автоматически. Для ручного пересчета отпусков можно нажать Сформировать, например, после корректировки первичных документов.
В форме отражаются рабочие периоды, дни отпуска заработанные, отгуленные и остаток, дни, прерывающие право на отпуск (итого за рабочий год):
Для детальной расшифровки дней, прерывающих право на отпуск, нужно нажать на «Разрывы права на отпуск подробно». Во второй строке будет выведено количество дней по состояниям сотрудника:
Использование дополнительных отпусков.
В обработке предполагается, что в организации также могут использоваться дополнительные отпуска по вредности и за ненормированный рабочий день водителей. Для них в коде задается список видов отпусков, по которым может собираться форма:
ВидыОтпусков = Новый Массив;
ВидыОтпусков.Добавить(Справочники.ВидыОтпусков.Основной);
ВидыОтпусков.Добавить(Справочники.ВидыОтпусков.ОтпускЗаВредность);
// Дополнительный отпуск водителей
ВидыОтпусков.Добавить(Справочники.ВидыОтпусков.НайтиПоНаименованию("Дополнительный ежегодный отпуск"));
При необходимости их можно отключить (закомментировать), заменить или добавить свои.
При формировании отчета дни дополнительных отпусков объединяются по рабочим годам с основным отпуском (для более компактного отображения) и в форме выделяются цветом:
Если у сотрудника присутствует отпуск по вредности – в качестве справочной информации выводится количество дней (по табелю), за которые дополнительный отпуск не начисляется:
ПрерывающиеВидыВремени = Новый Массив;
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.ВынужденныйПрогул);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.ПростойПоВинеРаботодателя);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.Простой);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.ОтпускНаОбучение);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.ГосударственныеОбязанности);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.Болезнь);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.БолезньБезОплаты);
ПрерывающиеВидыВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоРеквизиту("БуквенныйКод", "ДР")); // Дополнительный дородовый отпуск
Если у сотрудника были таки дни, то во второй строке рассчитывается количество дней вредного отпуска, которое сотрудник НЕ заработал в связи со своим отсутствием на рабочем месте – Снять дней отпуска по вредности.
Если сотрудник имеет инвалидность на начало, на конец или внутри рабочего периода – в колонке «Инв.» стоит галочка:
Это так же справочная информация, которая не влияет на расчет заработанных дней отпуска. Для корректного расчета отпусков инвалидов по прежнему требуется корректировка плановых дней в кадровых приказах. Просто облегчает визуальный контроль - 28 или 30.
Из формы можно открыть типовую справку по использованию отпусков – «Расшифровать остатки отпусков»:
Дополнительно к этому отдел кадров убежден, что в приказе на отпуск каждый рабочий год нужно вводить отдельной строкой. При этом, если у сотрудника имеется дополнительный отпуск из одного года, а основной берется из двух периодов – дополнительный отпуск должен быть обязательно между основными отпусками – таким образом мы должны ввести 3 строки: основной за 1-ый год – вредный за 1-ый год – основной за 2-ой год. При этом типовой механизм заполнения документов предполагает ввод двух периодов – основной за 2-а года – вредный за 1-ый год.
Здесь возможен вариант ручной корректировки – но при производстве с большим количеством вредных условий труда – это все таки сложно.
Дополнительная внешняя обработка, подключаемая к документу «Отпуск сотрудников», позволяет заполнить документ по сотруднику с учетом периодов работы аналогично описанной выше обработке:
При выборе соответствующей строки происходит расчет возможной продолжительности отпуска сотрудника исходя из остатков этого рабочего периода и даты начала отпуска.
При нажатии кнопки Оформить происходить добавление соответствующих строк в документ отпуска.
Проведено тестирование в конфигурации Зарплата и управление персоналом, редакция 3.1 (3.1.13.188)