В процессе работы с кадровым учетом часто возникает задача проанализировать «жизненный цикл» штатной единицы. Кадровой службе недостаточно видеть просто текущее состояние вакансий; им важно понимать хронологию: когда позиция была создана, в какие периоды она была занята конкретными сотрудниками и, что самое важное, когда она освободилась в результате увольнения или перевода. В типовой конфигурации 1С:Зарплата и Управление Персоналом 3.1 (ЗУП) информация распределена по разным регистрам, поэтому для получения полной картины нам потребуется либо тонкая настройка типовых отчетов, либо создание собственного отчета на системе компоновки данных (СКД). Рассмотрим детально, как решить эту задачу.
Прежде всего, проанализируем, где программа хранит нужные нам сведения. В ЗУП 3.1 учет штатного расписания и фактической занятости разделен:
ИсторияИспользованияШтатногоРасписания. Здесь фиксируется момент появления позиции, изменение количества ставок, условий оплаты и дата ее закрытия.ЗанятостьПозицийШтатногоРасписания. Это регистр остатков, который показывает, сколько ставок занято («Приход») и сколько освобождено («Расход»).ГрафикРаботыСотрудников).Разберем способы объединения этих данных для формирования итогового отчета.
Для простых задач, когда не требуется сложная математика вычисления «дней простоя» вакансии, мы можем адаптировать типовой отчет. Рассмотрим по шагам, как вывести дату утверждения позиции:
Позиция и найдем в нем реквизит Дата утверждения.Позиция.Этот метод позволяет увидеть, когда позиция была введена в эксплуатацию, но он не показывает дату последнего освобождения ставки, если на одной позиции числится несколько сотрудников.
Выясним причину, по которой отчет по «пустым» позициям вызывает сложности. Если по позиции штатного расписания утверждено 3 ставки, и один из сотрудников уволился 01.03.2025, то именно эта дата должна считаться «датой освобождения». Чтобы получить эти данные программно или через СКД, проанализируем работу с регистром накопления ЗанятостьПозицийШтатногоРасписания.
Рассмотрим логику построения запроса для получения даты вакансии:
ВЫБРАТЬ
Занятость.Позиция КАК Позиция,
МАКСИМУМ(Занятость.Период) КАК ДатаПоследнегоСобытия
ИЗ
РегистрНакопления.ЗанятостьПозицийШтатногоРасписания КАК Занятость
ГДЕ
Занятость.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
СГРУППИРОВАТЬ ПО
Занятость.Позиция
Важный нюанс: Просто найти последний «Расход» недостаточно. Нужно убедиться, что после этого расхода количество занятых ставок стало меньше общего количества утвержденных ставок по этой позиции. Для этого в СКД следует объединить данные по регистру накопления (остатки) и регистру сведений ИсторияИспользованияШтатногоРасписания (количество ставок).
Проанализируем ситуацию для пользователей версии КОРП. В данной редакции существует штатный функционал — «Цепочка связанных документов» и более расширенный учет вакансий. В КОРП-версии позиция штатного расписания может быть связана с конкретной заявкой на подбор персонала. Если ваша организация использует КОРП, рекомендуем обратить внимание на отчеты раздела «Подбор персонала», которые позволяют отслеживать время закрытия вакансии от момента ее появления (освобождения) до выхода нового сотрудника.
Если нам нужно четко зафиксировать момент первичного появления позиции в штатке, рассмотрим работу с документами Изменение штатного расписания. В табличной части Позиции этих документов есть реквизит Действие. Рассмотрим, как его использовать:
Действие равно Добавить, то дата этого документа (или дата вступления изменений в силу) и является датой рождения позиции.История использования штатного расписания, то первой записью по конкретной позиции будет запись с минимальным периодом.Пример логики для вычисления первой даты:
ВЫБРАТЬ
ИсторияШР.Позиция,
МИНИМУМ(ИсторияШР.Период) КАК ДатаПоявления
ИЗ
РегистрСведений.ИсторияИспользованияШтатногоРасписания КАК ИсторияШР
СГРУППИРОВАТЬ ПО
ИсторияШР.Позиция
При реализации подобного отчета вы столкнетесь с проблемой «сферических позиций в вакууме» (когда ставок много, а сотрудники обезличены). Чтобы отчет был достоверным, придерживайтесь следующих правил:
Таким образом, комбинируя данные регистра ИсторияИспользованияШтатногоРасписания для получения даты создания и регистра ЗанятостьПозицийШтатногоРасписания для получения дат освобождения, мы можем построить полноценный аналитический отчет, который удовлетворит требования кадровой службы и руководства.