|
Получение списка сотрудников | ☑ | ||
---|---|---|---|---|
0
eandrs
17.04.12
✎
11:32
|
Раньше я свято верил в непогрешимость 1ски, поэтому без вопросов использовал нижеследующий запрос. Однако сейчас возник вопрос. Мне одному кажется, что третья часть объединения в следующем запросе избыточна? (которая с периодами перекрытия):
ТекстЗапросаПоСпискуРаботников = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | РаботникиОрганизации.Сотрудник КАК Сотрудник, | РаботникиОрганизации.Сотрудник.Физлицо КАК Физлицо |ПОМЕСТИТЬ ВТСписокРаботников |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних( | &парамНачало, | Организация = &парамГоловнаяОрганизация | И (&ПоВсемФизЛицам | ИЛИ Сотрудник.ФизЛицо В (&ФизЛица))) КАК РаботникиОрганизации |ГДЕ | ВЫБОР | КОГДА РаботникиОрганизации.ПериодЗавершения <= &парамНачало | И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения | ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния | КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) | И ВЫБОР | КОГДА РаботникиОрганизации.ПериодЗавершения <= &парамНачало | И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ТОГДА РаботникиОрганизации.ОбособленноеПодразделениеЗавершения | ИНАЧЕ РаботникиОрганизации.ОбособленноеПодразделение | КОНЕЦ = &парамОрганизация | И ВЫБОР | КОГДА &ПоВсемПодразделениям | ТОГДА ИСТИНА | КОГДА РаботникиОрганизации.ПериодЗавершения <= &парамНачало | И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ТОГДА РаботникиОрганизации.ПодразделениеОрганизацииЗавершения В | (ВЫБРАТЬ | Подразделения.Подразделение | ИЗ | ВТПодразделенияОтбора КАК Подразделения) | ИНАЧЕ РаботникиОрганизации.ПодразделениеОрганизации В | (ВЫБРАТЬ | Подразделения.Подразделение | ИЗ | ВТПодразделенияОтбора КАК Подразделения) | КОНЕЦ | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | РаботникиОрганизации.Сотрудник, | РаботникиОрганизации.Сотрудник.Физлицо |ИЗ | РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации |ГДЕ | РаботникиОрганизации.Период > &парамНачало | И РаботникиОрганизации.Период <= &парамКонец | И РаботникиОрганизации.Организация = &парамГоловнаяОрганизация | И (&ПоВсемФизЛицам | ИЛИ РаботникиОрганизации.Сотрудник.Физлицо В (&ФизЛица)) | И РаботникиОрганизации.ОбособленноеПодразделение = &парамОрганизация | И (&ПоВсемПодразделениям | ИЛИ РаботникиОрганизации.ПодразделениеОрганизации В | (ВЫБРАТЬ | Подразделения.Подразделение | ИЗ | ВТПодразделенияОтбора КАК Подразделения)) | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | Работники.Сотрудник, | Работники.Сотрудник.Физлицо |ИЗ | РегистрСведений.РаботникиОрганизаций КАК Работники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия | ПО Работники.Сотрудник = ПериодыПерекрытия.Сотрудник | И (ПериодыПерекрытия.Период <= Работники.ПериодЗавершения) | И (ПериодыПерекрытия.Период > Работники.Период) | И (ПериодыПерекрытия.Организация = &парамГоловнаяОрганизация) |ГДЕ | Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | И Работники.ПериодЗавершения > &парамНачало | И Работники.ПериодЗавершения <= &парамКонец | И Работники.Организация = &парамГоловнаяОрганизация | И Работники.ОбособленноеПодразделениеЗавершения = &парамОрганизация | И (&ПоВсемФизЛицам | ИЛИ Работники.Сотрудник.Физлицо В (&ФизЛица)) | И (&ПоВсемПодразделениям | ИЛИ Работники.ПодразделениеОрганизацииЗавершения В | (ВЫБРАТЬ | Подразделения.Подразделение | ИЗ | ВТПодразделенияОтбора КАК Подразделения)) | И ПериодыПерекрытия.Период ЕСТЬ NULL | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник, | ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник.Физлицо |ИЗ | Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом |ГДЕ | ДоговорНаВыполнениеРаботСФизЛицом.ДатаНачала <= &парамКонец | И ДоговорНаВыполнениеРаботСФизЛицом.ДатаОкончания >= &парамНачало | И ДоговорНаВыполнениеРаботСФизЛицом.Проведен | И ДоговорНаВыполнениеРаботСФизЛицом.Организация = &парамОрганизация | И (&ПоВсемФизЛицам | ИЛИ ДоговорНаВыполнениеРаботСФизЛицом.ФизЛицо В (&ФизЛица)) | И (&ПоВсемПодразделениям | ИЛИ ДоговорНаВыполнениеРаботСФизЛицом.ПодразделениеОрганизации В | (ВЫБРАТЬ | Подразделения.Подразделение | ИЗ | ВТПодразделенияОтбора КАК Подразделения)) | |ИНДЕКСИРОВАТЬ ПО | Сотрудник"; |
|||
1
eandrs
17.04.12
✎
11:35
|
Всплывай
|
|||
2
eandrs
17.04.12
✎
11:42
|
Всплывай, говорю.
|
|||
3
vicof
17.04.12
✎
11:43
|
Да оно не тонет.
В чем конкретно вопрос? |
|||
4
vmv
17.04.12
✎
11:45
|
(2) а корабль с золотишком конкистадоров поднимешь, я не против если там будет лишний сундучок
|
|||
5
eandrs
17.04.12
✎
11:46
|
Вопрос в том - зачем нужна эта третья часть объединения. Без неё, мне кажется, сей запрос будет работать точно также, как и с ней.
|
|||
6
vmv
17.04.12
✎
11:46
|
непогрешимость 1ски - как мощьно звучит, прям сейчас сяду писать образа и нимбы на холстах, фото небожителей в студию
|
|||
7
eandrs
17.04.12
✎
11:47
|
(6) Я старался)
|
|||
8
vmv
17.04.12
✎
11:49
|
краткое содержание
... |ОБЪЕДИНИТЬ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | РаботникиОрганизации.Сотрудник, | РаботникиОрганизации.Сотрудник.Физлицо |ИЗ | РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации ..... |ОБЪЕДИНИТЬ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | Работники.Сотрудник, | Работники.Сотрудник.Физлицо |ИЗ | РегистрСведений.РаботникиОрганизаций КАК Работники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия ...... |ВЫБРАТЬ РАЗЛИЧНЫЕ | ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник, | ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник.Физлицо |ИЗ | Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом действительно, никаких очевидных различий - разчленить! |
|||
9
Fish
17.04.12
✎
11:51
|
(5) Проверял?
|
|||
10
eandrs
17.04.12
✎
11:53
|
(8) Ну ладно. Давай поподробней. Как я понимаю, в третьей части выбираются записи с заполненной плановой датой завершения, попадающей в исследуемый интервал, действие которых не было "досрочно" прекращено другими записями по этому сотруднику.
Дата завершения в исследуемом интервале. Дата начала записи может в интервал входить, а может - и нет. Если входит - то она будет также выбрана запросом второй части объединения. Если не входит - то запросом первой части объединения, т.е. срезом последних на дату начала исследуемого интервала. Где я не прав? |
|||
11
eandrs
17.04.12
✎
11:54
|
(9) - насколько позволила кривизна рук - да.
|
|||
12
eandrs
17.04.12
✎
12:07
|
Подъем
|
|||
13
eandrs
17.04.12
✎
12:24
|
Без жертвы Ктулху, видимо, не обойтись...
|
|||
14
eandrs
17.04.12
✎
13:38
|
Видимо, все обсуждают митинг
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |