Список сотрудников, работавших в подразделении организации в указанный период. ЗУП 2.5



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

Зачастую бывает необходимо получить список сотрудников, работавших в некоем подразделении в определённый период времени. Простые запросы к регистру «Сотрудники организаций.СрезПоследних» дают лишь сведения на определённый момент времени. Сопоставление срезов на начало периода и на конец периода не даёт сведений о сотрудниках, принятых в подразделение после начала периода и при этом ушедших из него до конца периода. И прочая, прочая…

Разные варианты запроса, лишённого этих недостатков, приведены в публикуемой обработке. Эти варианты выполнены в виде отдельных функций, которые вы можете вставлять в свои общие модули. Функции возвращают таблицы значений. Я специально сделал 6 разных функций с неразрывным текстом запроса, чтобы запрос можно было легко изменить в конструкторе под ваши нужды.

Небольшие пояснения.
1. Переключатель «Учитывать подчинённые подразделения» позволяет вам выбирать сотрудников либо из одного конкретного подразделения, либо из всей ветки подразделения и его подчинённых подразделений. Собственно, запросы отличаются лишь условием «Подразделение ВИерархии» или «Подразделение =».

2. Переключатель «Результат запроса» позволяет вам получить в итоге:
а) Наглядную таблицу всех, кто «отметился» в заданном подразделении за указанный период с разбивкой по периодам. С колонками «Сотрудник», «ДатаНачала», «ДатаОкончания», «ПодразделениеОрганизации», «Должность», «График работы» и «ЗанимаемыхСтавок» (ибо кадровое перемещение с изменением одного из этих параметров порождает строку в регистре «РаботникиОрганизаций»). Это для наглядности;
б) Только одну колонку «Сотрудник» с неповторяющимся списком сотрудников, работавших в этом подразделении хотя бы сутки. Можно затем выгрузить в массив или список значений, передать в другую процедуру и т.п.
в) Только одну колонку «Физлицо» с неповторяющимся списком физлиц, работавших в этом подразделении хотя бы сутки. Можно затем выгрузить в массив или список значений, передать в другую процедуру и т.п.

Проверены следующие возможные варианты кадровых перемещений сотрудников (курсивом выделены не попадающие в результат):

 1. Увольнение и приём
1.1. Сотрудник принят до начала отчётного периода и до сих пор без изменений работает в подразделении
1.2. Сотрудник принят в отчётном периоде и до сих пор без изменений работает в подразделении
1.3. Сотрудник принят до начала отчётного периода и уволен в середине отчётного периода
1.4. Сотрудник принят до начала отчётного периода и уволен после окончания отчётного периода
1.5. Сотрудник принят в середине отчётного периода и уволен в середине отчётного периода
1.6. Сотрудник принят после окончания отчётного периода и работает до сих пор
1.7. Сотрудник принят до начала отчётного периода и уволен до начала отчётного периода
1.8. Сотрудник принят после окончания отчётного периода и уволен после окончания рабочего периода

2. Временный перевод сотрудника ИЗ указанного подразделения
2.1. Сотрудник временно работал в другом подразделении до начала отчётного периода
2.2. Сотрудник временно ушёл в другое подразделение и вернулся оттуда в середине отчётного периода
2.3. Сотрудник временно работал в другом подразделении после окончания отчётного периода
2.4. Сотрудник временно ушёл в другое подразделение до начала периода и вернулся оттуда в середине отчётного периода
2.5. Сотрудник временно ушёл в другое подразделение в середине периода и вернулся оттуда после окончания периода
2.6. Сотрудник временно ушёл в другое подразделение до начала периода и вернулся оттуда после окончания периода

3. Временный перевод сотрудников других подразделений В указанное подразделение
3.1. Сотрудник другого подразделения временно пришёл в указанное подразделение и вернулся обратно до начала периода
3.2. Сотрудник из другого подразделения временно пришёл в указанное подразделение и ушёл из него в середине периода
3.3. Сотрудник другого подразделения временно пришёл в указанное подразделение и вернулся обратно после окончания периода
3.4. Сотрудник другого подразделения временно пришёл в указанное подразделение до начала периода и вернулся обратно в середине периода
3.5. Сотрудник другого подразделения временно пришёл в указанное подразделение в середине периода и вернулся обратно после окончания периода
3.6. Сотрудник другого подразделения временно пришёл в указанное подразделение до начала периода и вернулся обратно после окончания периода

4. Уход сотрудника указанного подразделения на постоянную работу в другое подразделение
4.1. Сотрудник ушёл до начала периода
4.2. Сотрудник ушёл в периоде
4.3. Сотрудник ушёл после окончания периода

5. Переход сотрудника другого подразделения на постоянную работу в указанное подразделение
5.1. Сотрудник пришёл в указанное подразделение до начала периода
5.2. Сотрудник пришёл в указанное подразделение в периоде
5.3. Сотрудник пришёл в указанное подразделение после окончания периода

6. Перевод на другую постоянную должность внутри указанного подразделения
6.1. Сотрудник сменил должность до начала периода
6.2. Сотрудник сменил должность в середине периода
6.3. Сотрудник сменил должность после окончания периода

7. Временный перевод на другую должность внутри указанного подразделения
7.1. Сотрудник сменил должность и вернулся на прежнюю до начала периода
7.2. Сотрудник сменил должность и вернулся на прежнюю в середине периода
7.3. Сотрудник сменил должность и вернулся на прежнюю после окончания периода
7.4. Сотрудник сменил должность до начала периода и вернулся на прежнюю в середине периода
7.5. Сотрудник сменил должность до начала периода и вернулся на прежнюю после окончания периода
7.6. Сотрудник сменил должность в середине периода и вернулся на прежнюю после окончания периода

3 Comments

  1. galyna

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

    Reply
  2. rinik88

    Дельный отчет, спасибо, помогли.

    Reply
  3. monkbest

    Хорошая шпаргалка, но есть что улучшить:

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

    В этой ВТ у Вас 4 объединения 1) весь срез на начало 2)Весь срез на конец 3)все движения 4)все завершения

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

    Без этого при большой численности медленно работает

    Reply

Leave a Comment

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