- В этой теме 1 ответ, 2 участника, последнее обновление 6 часов, 12 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как написать запрос ЗУП для выбора работающих сотрудников за период?
Текст запроса для ЗУП, для выбора работающих сотрудников за указанный период
Для выбора работающих сотрудников за указанный период в ЗУП (например, ЗУП 3.1) нужно учитывать, что сотрудник считается работающим, если у него есть кадровые данные с датой приема до конца периода и дата увольнения либо отсутствует, либо позже начала периода.
Пример текста запроса на языке 1С для выборки таких сотрудников:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Сотрудники.Ссылка КАК Сотрудник, | Сотрудники.ФизЛицо, | КадровыеДанные.ДатаПриема, | КадровыеДанные.ДатаУвольнения, | КадровыеДанные.Должность, | КадровыеДанные.Подразделение |ИЗ | Справочник.Сотрудники КАК Сотрудники | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КадровыеДанные КАК КадровыеДанные | ПО Сотрудники.Ссылка = КадровыеДанные.Сотрудник |ГДЕ | КадровыеДанные.ДатаПриема <= &ДатаКон | И (КадровыеДанные.ДатаУвольнения ЕСТЬ NULL ИЛИ КадровыеДанные.ДатаУвольнения >= &ДатаНач) | И Сотрудники.Активность = ИСТИНА"; Запрос.УстановитьПараметр("ДатаНач", НачалоПериода); Запрос.УстановитьПараметр("ДатаКон", КонецПериода); Результат = Запрос.Выполнить().Выгрузить(); |
Где:
— НачалоПериода и КонецПериода — параметры, задающие период, за который нужно получить работающих сотрудников.
— Используется регистр сведений «КадровыеДанные» (в ЗУП 3.1 он есть), где хранятся даты приема и увольнения.
— Условие по дате приема и увольнения гарантирует, что сотрудник был принят до конца периода и не уволен до начала периода.
Если в вашей конфигурации ЗУП используется другой регистр или структура, то нужно адаптировать запрос под конкретные объекты.