Каталог решений - Стаж работы на предприятии (количество лет, месяцев, дней) от даты приема до даты отчета

Стаж работы на предприятии (количество лет, месяцев, дней) от даты приема до даты отчета

Стаж работы на предприятии (количество лет, месяцев, дней) от даты приема до даты отчета

В наличии

Доработка отчета «Личные данные сотрудников» путем настройки трех пользовательских полей системы компоновки данных, в режиме 1С:Предприятие.
Конфигуратор не требуется.

Конфигурации: ЗУП 3.1, ЗГУ 3.1, с 3.1.14.
Проверял на ЗУП 3.1.17.171.

Категория:

Описание

Постановка задачи

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

Пример (на дату 08.06.2021)
Иванов Иван Иванович, принят 21.11.2019, стаж 1 год 6 месяцев 18 дней

Почему пришлось написать новую статью

Сначала я искал готовые решения на Инфостарте и других ресурсах. Нашел файлы самописных отчетов, и ни один из них меня не устроил.

Первый попавшийся отчет строился на регистре «ТекущиеКадровыеДанныеСотрудников» — закрыл эту статью сразу же.

Второй был построен грамотнее, показатели считались в запросе, и формулы были выложены в статье. Но вот с формулами там было что-то напутано, нужный мне результат не смог получить, рассчитывая по этим формулам вручную. Кроме того, статья была довольно старая, и нет гарантии, что заработает в актуальном релизе.

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

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

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

Формулы расчета стажа на языке выражений СКД

Для решения задачи у нас есть следующие исходные данные

1. Дата, по состоянию на которую формируется отчет (это параметр отчета "Личные данные").

2. Дата приема сотрудника.

Я считаю, что эта дата всегда заполнена, так как в отчете есть предустановленный отбор по работающим сотрудникам по состоянию на дату отчета. Поэтому все дальнейшие формулы не учитывают проверку на пустую дату приема.

Первое, что нужно рассчитать – это количество полных месяцев с даты приема до даты отчета. В нашем примере (с 21.11.2019) получается 18 полных месяцев. Если прибавить 18 месяцев к дате приема, получаем 21.05.2021, что меньше даты отчета (08.06.2021).

В языке выражений СКД есть функция РазностьДат(), в нашем приемер она дает 19 месяцев между датами отчета и датой приема. Поэтому при расчеете нужно проверять: если к дате приема прибавляем разность дат и полученная дата больше даты отчета, нужно отнять один месяц.

Формула на языке выражений СКД будет выглядеть так:
 

ВЫБОР КОГДА НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") ТОГДА -1 ИНАЧЕ 0 КОНЕЦ + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")
 

Обратите внимание, что при сравнении дат обе приводятся к началу дня. Полученный показатель назову условно КолМесяцев, чтобы использовать его для пояснения алгоритма расчета в других формулах.

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

Цел(КолМесяцев/12)

Подставляем выражение расчета количества полных месяцев, получаем формулу расчета отработанных лет на языке выражений СКД:

Цел((ВЫБОР КОГДА НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") ТОГДА -1 ИНАЧЕ 0 КОНЕЦ + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ"))/12)

Зная количество отработанных лет и количество полных месяцев стажа, легко рассчитать количество месяцев стажа, исключая отработанные годы: КолМесяцев-СтажЛет*12

Формула на языке СКД для количества месяцев стажа:

ВЫБОР КОГДА НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата],"ДЕНЬ") ТОГДА -1 ИНАЧЕ 0 КОНЕЦ +РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ") — 12 * Цел((Выбор Когда НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") Тогда -1 Иначе 0 Конец + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")) / 12)

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

РазностьДат(ДобавитьКДате([Дата приема], "МЕСЯЦ", Выбор Когда НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") Тогда -1   Иначе 0 Конец + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), [Параметры.Дата], "ДЕНЬ")

Доработка варианта отчета, сохранение варианта

 

Для доработки варианта отчета открываем раздел «Кадры» — «Кадровые отчеты» — «Личные данные сотрудников». На форме отчета есть кнопка «Еще» — нажимаем еще, выбираем «Прочее» — «Изменить вариант отчета».

 

 

Переходим на вкладку «Пользовательские поля», нажимаем кнопку «Добавить», тип поля – выражение, и создаем поле «Стаж работы на предприятии, лет». В заголовок пишем произвольный заголовок поля, в выражение детальных записей – формулу расчета количества лет, см. выше. Выражение итоговых записей не заполняем. Нажимаем кнопку ОК.

Точно так же добавляем поля расчета месяцев и дней.

 

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

 

 

Для добавления полей на форме отчета нужно нажать кнопку «Настройка» — откроется окно настройки, сразу же переключаемся в расширенный режим, и на вкладке «Поля и сортировки» добавляем только что созданные пользовательские поля – стаж работы на предприятии. Теперь можно нажать кнопку «Закрыть и сформировать».

 

Чтобы настройка отчета сохранилась для последующего использования, нужно сохранить вариант отчета – нажать маленькую кнопочку справа от кнопки «Настройка» и выбрать пункт «Сохранить вариант отчета».  Далее потребуется присвоить имя варианту отчета, я указал – «Личные данные сотрудников – стаж работы на предприятии».

 

После сохранения настройки отчет можно легко найти в списке кадровых отчетов:

 

has been added to your cart:
Оформление заказа