Как получить начало и конец отпуска по каждому сотруднику

1. Gendelf 28.11.22 16:54 Сейчас в теме
ЗУП 3.1
Добрый день, можно ли типовыми средствами БСП получить даты начала и окончания текущего состояния сотрудника.
Т.е. если он в отпуске или декрете, то с какого по какое число.
Если это можно сделать добавив имя в КадровыеДанные - идеальный вариант, но такого имени я не нашёл.

Текущих сотрудников получаю так:
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛи­ц();
ПараметрыПолученияСотрудников.КадровыеДанные = "Фамилия, Имя, Отчество, Должность, Организация, Подразделение, ТабельныйНомер, ДатаПриема, ДатаУвольнения, Состояние, ВидЗанятости, Пол";

КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолученияСотрудников)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1826630 28.11.22 16:58 Сейчас в теме
(1)
можно ли типовыми средствами БСП получить даты начала и окончания текущего состояния сотрудника
Давно ли БСП начало работать с учетными данными?
3. Gendelf 28.11.22 17:00 Сейчас в теме
(2) только что) я имел ввиду общий модули конечно
13. nomad_irk 76 30.11.22 08:57 Сейчас в теме
(1)написать простой запрос к РС "СостоянияСотрудников" не предлагать?
14. Gendelf 30.11.22 09:01 Сейчас в теме
(13) так и работает сейчас) но при такой реализации не работают отборы через ПараметрыПолученияСотрудников.Отборы
15. nomad_irk 76 30.11.22 09:06 Сейчас в теме
(14)отборы в таком случае должны быть реализованы самостоятельно, без применения типового программного интерфейса
4. Gendelf 29.11.22 08:06 Сейчас в теме
5. laperuz 47 29.11.22 08:37 Сейчас в теме
СостоянияСотрудников.СостоянияСотрудников(), как бы банально это не было:)
6. Gendelf 29.11.22 10:42 Сейчас в теме
(5) Я так и делаю, но выполняю это уже в цикле по каждому сотруднику. Основная проблема в том, что такой вариант не позволяет накладывать отборы в момент выборки данных

ПараметрыПолученияСотрудников.Отборы
7. laperuz 47 29.11.22 11:54 Сейчас в теме
(6)А зачем выполнять в цикле, если можно список сотрудников передавать?
8. Gendelf 29.11.22 12:03 Сейчас в теме
КадровыйУчет.СотрудникиОрганизации() возвращает таблицу значений, а выгрузить колонку "Сотрудник", передать в СостоянияСотрудников.СостоянияСотрудников() и добавить колонку Состояния в таблицу значений - довольно таки трудоемко. Не думаю, что это будет работать быстрее. Или можно подругому?
9. laperuz 47 29.11.22 12:33 Сейчас в теме
(8)Задача в чем? Получить текущее состояние всех работающих на данный момент сотрудников?
Формируйте список сотрудников через КадровыйУчет.СотрудникиОрганизации()
Там можно и отборы наложить нужные

P.s. увидел, что вы так и делаете. Ну я думаю это будет точно быстрее, чем запрос в цикле
10. Gendelf 29.11.22 12:48 Сейчас в теме
(9) Задача получить сотрудников, с возможностью фильтрации уволенных, отпускных и по всем полям выборки в параметре КадровыеДанные

Посмотрю КадровыйУчет.СотрудникиОрганизации(), если вы знаете, в чем отличие этих функций?
КадровыйУчет.СотрудникиОрганизации() - именно его зачастую рекомендуют на форумах.
11. Gendelf 29.11.22 14:40 Сейчас в теме
(9) Не так понял ваше сообщение. Я и так формирую список через эту функцию. Но там не знаю как наложить фильтры по датам состояния. По полям начало отпуска и окончание отпуска. Эти поля я добавляю уже после выполнении функции КадровыйУчет.СотрудникиОрганизации()
16. laperuz 47 30.11.22 10:02 Сейчас в теме
(11)В отчете "Состояния сотрудников" регистр состояний используется в явном виде.
Т.е, видимо, в вашем случае нужно создать ВТ через КадровыйУчет.СоздатьНаДатуВТКадровыеДанныеСотрудников() и соединить с регистром СостоянияСотрудников аналогично отчету по полю Сотрудник с отбором

ГДЕ
	СостоянияСотрудников.Период < &Сегодня
	И (СостоянияСотрудников.ДействуетДо >= &Сегодня
			ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
	И СостоянияСотрудников.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение)
17. Gendelf 30.11.22 12:13 Сейчас в теме
(16)
(16)
СоздатьНаДатуВТКадровыеДанныеСотрудников


Функция требует СписокСотрудников, в моём случае его нет, формирую по всем
18. Gendelf 30.11.22 12:26 Сейчас в теме
(17) Возможно я не так понял, ВТ я получил, но с ним работать не умею, как дальше соединять и получить по нему результат не ясно. Буду пробовать через обычный запрос к БД, с РС СостоянияСотрудников это решения кажется более простым
12. Gendelf 30.11.22 08:49 Сейчас в теме
КадровыйУчет.СотрудникиОрганизации() позволяет получить состояние, но не позволяет получить даты начала и окончания этого состояния. В этом проблема.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот