Имя: Пароль:
1C
1С v8
Запрос по работающим сотрудникам.
,
0 Vadimugatu
 
30.01.15
07:42
Добрый день, форумчане!
Конфигурация УПП 1.3.
Необходимо получать всех работающих сотрудников на определенный день. Т.е. нужно помимо РС "РаботникиОрганизации" учитывать и записи РС "СостояниеСотрудниковОрганизации", так как дату сотрудник м.б. в декрете или болеет и т.д.
Может быть в УПП уже есть подобный запрос, который бы учитывал все состояния сотрудника?
Заранее спасибо.
1 Cube
 
30.01.15
07:44
Отчет "Список сотрудников организации".
2 Vadimugatu
 
30.01.15
07:47
(1) Этот отчет показывает только числящихся сотрудников, а если он в отпуске, отчет это не покажет.
3 Cube
 
30.01.15
07:49
(2) Сам придумал?
4 Vadimugatu
 
30.01.15
07:50
(3) проверил. Отправил сотрудника в отпуск. В отчет он попадает.
5 SeraFim
 
30.01.15
07:52
Отбор настрой. Там есть поле "Состояние"
6 Cube
 
30.01.15
07:55
(4) Проблема решена?
7 Vadimugatu
 
30.01.15
07:58
да вот ковыряю отчет, пока что такое поле "состояние" найти не могу
8 DAVI
 
30.01.15
08:12
(7) у рс РаботникиОрганизации есть реквизит ПричинаИзмененияСостояния, отбирай по нему,условие поставь где ПричинаИзменения не равно Увольнение
9 Vadimugatu
 
30.01.15
08:14
(8) С РС "РаботникиОрганизации" проблем никаких нет, есть вопрос только к РС "СостояниеСотрудниковОрганизаций", т.к. там очень много различных состояний и нужно анализировать периоды завершения состояния и само состояние завершения.
10 Vadimugatu
 
30.01.15
08:27
Вобщем вытащил из отчета "Список сотрудников организации" такой кусок кода, отрабатывает нормально:

ВЫБРАТЬ
    РаботникиОрганизации.Сотрудник,
    ВЫБОР
        КОГДА ВЫБОР
                КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
                        И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
                ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
            КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.НеРаботает)
        ИНАЧЕ ЕСТЬNULL(ВЫБОР
                    КОГДА &Период >= СостояниеРаботниковОрганизации.ПериодЗавершения
                            И СостояниеРаботниковОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                        ТОГДА СостояниеРаботниковОрганизации.СостояниеЗавершения
                    ИНАЧЕ СостояниеРаботниковОрганизации.Состояние
                КОНЕЦ, ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает))
    КОНЕЦ КАК Состояние
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизации
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&Период, ) КАК СостояниеРаботниковОрганизации
        ПО РаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизации.Сотрудник
            И РаботникиОрганизации.Организация = СостояниеРаботниковОрганизации.Организация
11 Vadimugatu
 
30.01.15
08:27
Всем спасибо