Имя: Пароль:
1C
1С v8
v8: Запрос. Отбор сотрудников по подразделениям
0 mau89
 
13.03.13
22:33
Добрый вечер (ночь) помогите разобраться, а то вообще чет тяжело понять не могу, в общем есть запрос,
Запрос.текст= "ВЫБРАТЬ
                 |    РаботникиОрганизацийСрезПоследних.Период,
                 |    РаботникиОрганизацийСрезПоследних.Сотрудник,
                 |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                 |    РаботникиОрганизацийСрезПоследних.Должность,
                 |    РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора
                 |ИЗ
                 |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонДата, ) КАК РаботникиОрганизацийСрезПоследних
                 |ГДЕ
                 |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&Подразделение)
                 |    И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора = &ТрудовойДоговор
                 |    И РаботникиОрганизацийСрезПоследних.Сотрудник В(&ОтборРаботника)";
   СписокСотрудников=Запрос.Выполнить().Выбрать();
   Пока  СписокСотрудников.Следующий() цикл
сейчас получается что работает таким образом,
1) выбираю подразделение, и сотрудника, и мне выводится сотрудники работающие в данном подразделении
2) выбираю сотрудников без указания подразделения, выводит этих сотрудников
но мне еще надо сделать, чтоб допустим я не выбрал сотрудника и не выбрал подразделения, мне вывелись все сотрудники, это первое. и 2 выбираю только подразделение, мне выводится только сотрудники данного подразделения.
Подскажите пожалуйста как это реализовать, и возможно ли это в запросе сделать?
1 Aloex
 
13.03.13
22:37
(0) видимо требуется получить данные без указания условий Подразделениеи и ОтборРаботника
2 mau89
 
13.03.13
22:43
(1) точно, примерно понял что надо сделать, спасибо за наставление ;)
3 EvgeniuXP
 
13.03.13
22:51
а отбор по подразделению и истории наименования слабо?
4 EvgeniuXP
 
13.03.13
22:52
вывести в динамический список на дату увольнения и делать отбор либо по подразделению, либо по наименованию подразделения (которая может меняться).
5 mau89
 
13.03.13
22:56
(3) в настоящее время мне много чего слабо, я начинающий пока программист и только учусь, а отчет до утра дописать надо, по-этому думаю проще тут доделать, чем заново разбираться что да как писать. Но за совет спасибо, как время свободное будет, буду разбираться что да как
6 zladenuw
 
13.03.13
23:21
(5) наверное как то так
   Запрос.текст= "ВЫБРАТЬ
                 |    РаботникиОрганизацийСрезПоследних.Период,
                 |    РаботникиОрганизацийСрезПоследних.Сотрудник,
                 |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                 |    РаботникиОрганизацийСрезПоследних.Должность,
                 |    РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора
                 |ИЗ
                 |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
                 |            &КонДата,
                 |            ВЫБОР
                 |                    КОГДА &Подразделение = ЗНАЧЕНИЕ(справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                 |                        ТОГДА ИСТИНА
                 |                    ИНАЧЕ ПодразделениеОрганизации В ИЕРАРХИИ (&Подразделение)
                 |                КОНЕЦ
                 |                И Сотрудник.ВидДоговора = &ТрудовойДоговор
                 |                И ВЫБОР
                 |                    КОГДА &ОтборРаботника = ЗНАЧЕНИЕ(справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                 |                        ТОГДА ИСТИНА
                 |                    ИНАЧЕ Сотрудник В (&ОтборРаботника)
                 |                КОНЕЦ) КАК РаботникиОрганизацийСрезПоследних";
7 GenV
 
13.03.13
23:27
(0) Посмотри какой-нибудь кадровый отчет вроде списки сотрудников или заполнение в документе выплата з/п по условию. Ты еще не учитываешь, что сотрудник может быть временно переведен в другое подразделение, т.ч. не все так просто.