Добрый день. Работаем в ЗУП корп 3.1.22.48. Помогите пожалуйста настроить отчет который показывает дату перевода сотрудника на текущую должность (именно должность, если была смена подразделения это анализировать не нужно) и сколько времени (год/месяц/день) он ее занимает на дату формирования отчета. ) Вопрос очень срочный!
Все комментарии (2)
Комментарии закрыты.
Здравствуйте!
К сожалению, нив одном регистре не хранится информация о том, какие были подразделение и должность до перевода. Мы можем, в том числе и типовыми отчетами, посмотреть изменения за период — новые кадровые сотрудника, но нет типового отчета, позволяющего увидеть подразделение и должность до перевода. А значит не получится и проанализировать изменилось только подразделение или изменилась должность.
Но есть вариант обхода, который правда потребует ручной работы. Можно добавить в Кадровый перевод дополнительный реквизит — флажок «Изменена должность». Этот флажок проставить в нужных Кадровых переводах. Но тут опять есть подводный камень: Кадровый перевод может быть списком, а в одном переводе может быть и перевод с изменением должности и перевод, где изменилось только подразделение. Если у вас есть такие случаи, то для них этот способ не отработает. 🙁
Как настроить доп. реквизит, посмотрите:
Когда доп. реквизит настроен и флажки в нужных КП проставлены, можно формировать отчет.
Сформируем Универсальный отчет по регистру «Кадровая история сотрудников».
Чтобы попали только нужные переводы сделаем отбор:
Регистратор события.Изменилась должность (Кадровые переводы) = Истина ИЛИ Регистратор события.Изменилась должность (Кадровые переводы списком)
Затем настроим пользовательское поле выражение. Текст в «Выражении детальных записей»:
Строка(Цел((ВыборСтрока(Цел((Выбор Когда НачалоПериода(ДобавитьКДате([Дата начала], «Месяц», РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)), «ДЕНЬ») > НачалоПериода(ТекущаяДата(), «ДЕНЬ») Тогда -1 Иначе 0 Конец + РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)) / 12)) + «г.» + Строка(Выбор Когда НачалоПериода(ДобавитьКДате([Дата начала], «Месяц», РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)), «ДЕНЬ») > НачалоПериода(ТекущаяДата(), «ДЕНЬ») Тогда -1 Иначе 0Конец + РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ») — 12 * Цел((Выбор Когда НачалоПериода(ДобавитьКДате([Дата начала], «Месяц», РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)), «ДЕНЬ») > НачалоПериода(ТекущаяДата(), «ДЕНЬ») Тогда -1 Иначе 0 Конец + РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)) / 12)) + «м.» + Строка(РазностьДат(ДобавитьКДате([Дата начала], «МЕСЯЦ», Выбор Когда НачалоПериода(ДобавитьКДате([Дата начала], «Месяц», РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)), «ДЕНЬ») > НачалоПериода(ТекущаяДата(), «ДЕНЬ») Тогда -1 Иначе 0 Конец + РазностьДат([Дата начала], ТекущаяДата(), «МЕСЯЦ»)), ТекущаяДата(), «ДЕНЬ»)) + «д.»
Но поскольку есть проблемы с копированием выражения пользовательского поля: если Вы скопируете этот текст и вставите у себя, то поле будет выдавать ошибку. Дело в том, что при копировании неправильно вставляются кавычки. И их бы пришлось все заменять вручную. Но кавычек в этом тексте много.
Поэтому я прикладываю настройки универсального отчета: https://buhexpert8.ru/wp-content/uploads/2022/06/nastrojki-universalnogo-otcheta-po-registru-Kadrovaya-istoriya-sotrudnikov.zip
Только в нем не настроен отбор, о котором я писала выше. Сделайте настройку доп. реквизита, проставьте флажки. Затем разверните эти настройки и добавьте в них отбор по доп. реквизиту.
Протестируйте, пожалуйста, и отпишитесь, верно ли считает период работы. Должно быть верно, этот алгоритм уже был проверен на расчете стажа. Но все-таки несколько случаев просчитайте вручную у себя.
Добрый день. Можно закрывать, спасибо!