Зачастую бывает необходимо получить список сотрудников, работавших в некоем подразделении в определённый период времени. Простые запросы к регистру "Сотрудники организаций.СрезПоследних" дают лишь сведения на определённый момент времени. Сопоставление срезов на начало периода и на конец периода не даёт сведений о сотрудниках, принятых в подразделение после начала периода и при этом ушедших из него до конца периода. И прочая, прочая...
Разные варианты запроса, лишённого этих недостатков, приведены в публикуемой обработке. Эти варианты выполнены в виде отдельных функций, которые вы можете вставлять в свои общие модули. Функции возвращают таблицы значений. Я специально сделал 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. Сотрудник сменил должность в середине периода и вернулся на прежнюю после окончания периода