Остатки отпусков







В отчете использован типовой механизм расчета положенных сотруднику отпусков из УПП ред. 1.3. Доработки в части расчета отпуска за вредность, который рассчитывается по фактически отработанному времени во вредных условиях труда (по табелю рабочего времени), а также по персональным отпускам сотрудников (задействована дата, с которой отпуск начинает действовать, например, если сотрудник принес справку об инвалидности).

Для корректной работы отчета необходимо внести изменения в справочник «СотрудникиОрганизаций»:

в табличную часть «ЕжегодныеОтпуска» надо добавить реквизит «Период» (Тип:Дата) и вывести его на форму «ФормаВводаЕжегодныхОтпусков»

изменение конфигурации

 

 

Эти изменения для отпусков, у которых со временем меняется количество дней, положенных сотруднику, например, с выслугой или инвалидностью. 

Отпуск за вредность считается на основе табелей рабочего времени. У нас вредность отражается в программе вечерними часами (Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы), но можно поменять в коде. Если время во вредности к явке больше или равно 0.5, то день учитывается в стаже для отпуска.

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

Перед формированием отчета в параметрах надо указать отпуск за вредность.

Тестирование: по 180 сотрудникам расчитал за 8 минут. (1С клиент-серв) 

Функция ИсходныеДанныеДляРасчетаОстатков — возвращает структуру данных, базу для расчета остатков отпусков.

В запрос добавил вывод поля «Период» из ТЧ ЕжегодныеОтпуска справочника «Сотрудники организаций». Далее в функции ЗаработанныеОтпуска эта дата анализируется, если есть и заполнена,естественно. Здесь необходимо заметить, что если у сотрудника меняется продолжительность отпуска, то необходимо указать всю историю изменений для корректной работы. Т.е. если раньше сотруднику было положенно 28 дней отпуска по основному ежегодному, и с какого — то времени — 30. То необходимо указать и 28, и 30 в ТЧ Ежегодные отпуска.

Функция ЗаработанныеОтпуска — формирует таблицу значений ТаблицаЗаработанныхДнейОтпусков. Колонки:

— Сотрудник;

— ВидЕжегодногоОтпуска;

— ДатаНачала — Начало рабочего года;

— ДатаОкончания — Окончание рабочего года;

— Период — Дата в рабочем месяце, с которой сотруднику положен отпуск за  данный месяц (напр, 2,33 дня, если это основной ежегодный отпуск); 

— КоличествоДнейЗаПериод — количество заработанных дней отпуска за данный месяц (расчитывается делением общей продолжительности отпуска на 12 (месяцев));

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

Функция ОстаткиОтпусков — собственно, здесь происходит окончательное формирование таблицы по сотрудникам с конечными остатками по видам отпусков. Здесь же и проводится расчет остатков отпуска за вредность.  Я дополняю таблицу ТаблицаЗаработанныхДнейОтпусков следующими данными: ДнейСтажа, которые высчитваются по регистру накопления РабочееВремяРаботниковОрганизаций, в котором часы вредности у нас указаны вечерними часами. День засчитывается в стаж,если во вредности было отработанно половина или более от рабочего дня.  Сам расчет следующий: если по должности положено 14 дней отпуска за вредность, то за месяц выходит 14/12 =  1.17, это если  дни стажа совпадают с количество рабочих дней в месяце, если дней стажа меньше, то и дней отпуска уже положенно не 1.17, а 1.17/ЧислоРабочихДней*ДнейСтажа.

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

UPD: в последних релизах ЗУП произошли изменения в общих модулях.  Необходимо ОбщегоНазначения заменить на ОбщегоНазначенияЗК в модуле отчета во всех случаях обращения к функциям, процедурам этого модуля. Быстро сделать можно Ctrl-H или Правка — Заменить 

Изменил расшифровку отпуска поля «Вид ежегодного отпуска», она показывала данные по первому сотруднику из отчета. На данный момент эту расшифровку перенес на поле «Сотрудник» («Детализация отпусков»), сформирует справку по всем видам отпусков у данного сотрудника в разрезе месяцев. 

Расшифровку отчета «Детализация отпусков» сделал более информативной.

12 Comments

  1. marku

    Зарплата и Управление Персоналом, редакция 2.5 (2.5.64.3)

    Ошибка исполнения отчета

    по причине:

    Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’

    по причине:

    {ВнешнийОтчет.ОтчетПоОтпускам.МодульОбъекта(1681)}: Ошибка при вызове метода контекста (ВыполнитьПакет)

    по причине:

    {(410, 48)}: Поле не найдено «СотрудникиОрганизацийЕжегодныеОтпуска.Период»

    ТОГДА СотрудникиОрганизацийЕжегодныеОтпуска.<<?>>Период

    Reply
  2. dvvd

    Необходимо реквизит «Период» добавить в ТЧ ЕжегодныеОтпуска спр-ка «СотрудникиОрганизаций». В публикации я это упоминал.

    Reply
  3. dvvd

    Расшифровка «Детализация отпуска» , выдает данные по виду отпуска по первому сотруднику из отчета. Так что ее имеет смысл смотреть, если отчет формировать с отбором по одному сотруднику. Постараюсь это исправить.

    Reply
  4. dvvd

    Изменил расшифровку, теперь корректно работает

    Reply
  5. mikhailovaew

    Для учета любого количества дополнительных отпусков достаточно типового механизма.

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

    С отпусками «за вредность», если пренебречь учетом неотработанных дней, ситуация тоже типовая — отпуск указывается для должности, тогда право на получения отпуска предоставляется за период, когда сотрудник занимал эту должность.

    Reply
  6. dvvd

    (5) mikhailovaew, к сожалению, типовой механизм у нас не прижился. Вернее был отторгнут на начальной стадии, когда только начали искать варианты подсчета отпусков за вредность и отпусков за выслугу, инвалидности.

    право на получения отпуска предоставляется за период, когда сотрудник занимал эту должность

    — сотрудник постоянно работает на данной должности и определенное количество часов проводит во вредных условиях, вот за это самое время кадровики и просили подсчитать сколько дней отпуска положено сотруднику. Оформлять фиктивные перемещения между должностями для подсчета отпуска тоже не вариант. В итоге решили завязаться на табель, ведь там эта вредность учитывается для надбавки.

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

    В добавок

    если пренебречь учетом неотработанных дней

    нельзя так у нас, потому что за этим следит отдел внутреннего аудита, периодически проводит мониторинг,достает кадровиков и нас:-)(раз в год то уж точно,когда резервы формируются).

    Reply
  7. mikhailovaew

    (6) понятно, все же в большинстве организаций не так все строго )

    Reply
  8. llg_44

    Добрый день.

    1. Нельзя ли как-то обойтись без дополнительного реквизита Период?

    Из-за одного реквизита конфигурация станет нетиповой.

    Я настроила, но бухгалтер возражает. Ведь это внешняя обработка.

    2. Подскажите пожалуйста, в настройках отчета используется параметр Отпуск за вредность.

    Если выбрать не список, а только один вид, например Дополнительный отпуск(вредность) — это у нас так называется, то все равно выводит все виды отпусков, которые имеются у сотрудника.

    В целом отчет отличный. Но мне придется многое дорабатывать. Кадровик рассчитывает по своей формуле.

    3. Как будет рассчитываться отпуск за вредность, если в середине расчетного периода у сотрудника поменяется график? Вы упомянули, но мало. Не поняла, если честно)

    Спасибо за разработку. Отлично. Буду благодарна за ответ.

    Reply
  9. dvvd

    (8) llg_44,

    Добрый день

    1. Обойтись можно, но необходимо в запросах убрать обращение к этому реквизиту, и соответственно, не будет возможности указать изменение длительности персонального отпуска. Если нет в этом необходимости,то конечно, удаляйте.

    2.это не отбор, а скорее способ указать, какой отпуск считать по фактически отработанному времени.(по табелю).Попробуйте вид отпуска указать в нижней таб части, реквизит «Вид ежегодного отпуска». Тогда по конкретному виду отчет должен отработать.

    3. да, этот момент не отработан.

    В целом согласен, этот отчет не конечное решение, а некоторая основа, которую можно использовать в своих решениях.

    Reply
  10. llg_44

    Спасибо за ответ.

    Reply
  11. llg_44

    (9) dvimix, к сожалению с отбором не получается только по одному виду отпуска.

    Изменить отчет смогла без учета настройки Периода.

    Reply
  12. u_n_k_n_o_w_n

    Хорошая статья. Помогает четко определиться с сутью вопроса. Спасибо.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *