public object ПолучитьФизлицаСотрудниковПодразделенияНаДату(/*Организация, ПодразделениеОрганизации = Неопределено, Дата, ФизЛица = Неопределено*/)
{
//Запрос = Новый Запрос();
//Запрос.УстановитьПараметр("Организация", Организация);
//Запрос.УстановитьПараметр("ГоловнаяОрганизация", ОбщегоНазначения.ГоловнаяОрганизация(Организация));
//Запрос.УстановитьПараметр("ПодразделениеОрганизации", ПодразделениеОрганизации);
//Запрос.УстановитьПараметр("Дата", Дата);
//Запрос.УстановитьПараметр("ПоВсемФизлицам", Физлица = Неопределено);
//Запрос.УстановитьПараметр("Физлица", Физлица);
/*Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо КАК Физлицо,
| ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Дата
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
| КОНЕЦ КАК Подразделение,
| ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Дата
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.Период
| КОНЕЦ КАК Период,
| ВЫБОР
| КОГДА ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Дата
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
| КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Работает
|ПОМЕСТИТЬ ВТПодразделенияФизлицШтат
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &Дата,
| Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
| И Организация = &ГоловнаяОрганизация
| И (&ПоВсемФизлицам
| ИЛИ Сотрудник.Физлицо В (&Физлица))) КАК РаботникиОрганизацийСрезПоследних
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПодразделенияФизлиц.Физлицо КАК ФизЛицо,
| ПодразделенияФизлиц.Подразделение КАК Подразделение,
| ПодразделенияФизлиц.Работает КАК Работает,
| ДействующиеПериодыФизЛиц.Период КАК ДатаАктуальности
|ПОМЕСТИТЬ ВТАктуальныеПодразделенияФизлицШтат
|ИЗ
| ВТПодразделенияФизлицШтат КАК ПодразделенияФизлиц
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПодразделенияФизлиц.Физлицо КАК Физлицо,
| МАКСИМУМ(ПодразделенияФизлиц.Период) КАК Период
| ИЗ
| ВТПодразделенияФизлицШтат КАК ПодразделенияФизлиц
|
| СГРУППИРОВАТЬ ПО
| ПодразделенияФизлиц.Физлицо) КАК ДействующиеПериодыФизЛиц
| ПО (ДействующиеПериодыФизЛиц.Физлицо = ПодразделенияФизлиц.Физлицо)
| И (ДействующиеПериодыФизЛиц.Период = ПодразделенияФизлиц.Период)
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник.Физлицо КАК Физлицо,
| ДоговорНаВыполнениеРаботСФизЛицом.ПодразделениеОрганизации КАК Подразделение,
| НАЧАЛОПЕРИОДА(ДоговорНаВыполнениеРаботСФизЛицом.ДатаНачала, ДЕНЬ) КАК ДатаНачала,
| КОНЕЦПЕРИОДА(ДоговорНаВыполнениеРаботСФизЛицом.ДатаОкончания, ДЕНЬ) КАК ДатаОкончания,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(ДоговорНаВыполнениеРаботСФизЛицом.ДатаОкончания, ДЕНЬ) >= &Дата
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ДоговорДействует
|ПОМЕСТИТЬ ВТПодразделенияФизлицГПХ
|ИЗ
| Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом
|ГДЕ
| ДоговорНаВыполнениеРаботСФизЛицом.ДатаНачала <= &Дата
| И ДоговорНаВыполнениеРаботСФизЛицом.Проведен
| И ДоговорНаВыполнениеРаботСФизЛицом.Организация = &Организация
| И (&ПоВсемФизлицам
| ИЛИ ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник.Физлицо В (&Физлица))
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПодразделенияФизлицГПХ.Физлицо КАК ФизЛицо,
| МАКСИМУМ(ПодразделенияФизлицГПХ.Подразделение) КАК Подразделение,
| ПодразделенияФизлицГПХ.ДатаНачала КАК ДатаАктуальности
|ПОМЕСТИТЬ ВТПодразделенияФизлицДействующихДоговоров
|ИЗ
| ВТПодразделенияФизлицГПХ КАК ПодразделенияФизлицГПХ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПодразделенияФизлицГПХ.Физлицо КАК Физлицо,
| МАКСИМУМ(ПодразделенияФизлицГПХ.ДатаНачала) КАК ДатаНачала
| ИЗ
| ВТПодразделенияФизлицГПХ КАК ПодразделенияФизлицГПХ
| ГДЕ
| ПодразделенияФизлицГПХ.ДоговорДействует
|
| СГРУППИРОВАТЬ ПО
| ПодразделенияФизлицГПХ.Физлицо) КАК ПозднейшийДоговор
| ПО (ПозднейшийДоговор.Физлицо = ПодразделенияФизлицГПХ.Физлицо)
| И (ПозднейшийДоговор.ДатаНачала = ПодразделенияФизлицГПХ.ДатаНачала)
|ГДЕ
| ПодразделенияФизлицГПХ.ДоговорДействует
|
|СГРУППИРОВАТЬ ПО
| ПодразделенияФизлицГПХ.Физлицо,
| ПодразделенияФизлицГПХ.ДатаНачала
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПодразделенияФизлицГПХ.Физлицо КАК ФизЛицо,
| МАКСИМУМ(ПодразделенияФизлицГПХ.Подразделение) КАК Подразделение,
| ПодразделенияФизлицГПХ.ДатаОкончания КАК ДатаАктуальности
|ПОМЕСТИТЬ ВТПодразделенияФизлицЗавершившихсяДоговоров
|ИЗ
| ВТПодразделенияФизлицГПХ КАК ПодразделенияФизлицГПХ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПодразделенияФизлицГПХ.Физлицо КАК Физлицо,
| МАКСИМУМ(ПодразделенияФизлицГПХ.ДатаОкончания) КАК ДатаОкончания
| ИЗ
| ВТПодразделенияФизлицГПХ КАК ПодразделенияФизлицГПХ
| ГДЕ
| (НЕ ПодразделенияФизлицГПХ.ДоговорДействует)
|
| СГРУППИРОВАТЬ ПО
| ПодразделенияФизлицГПХ.Физлицо) КАК ПозднейшийДоговор
| ПО (ПозднейшийДоговор.Физлицо = ПодразделенияФизлицГПХ.Физлицо)
| И (ПозднейшийДоговор.ДатаОкончания = ПодразделенияФизлицГПХ.ДатаОкончания)
|ГДЕ
| (НЕ ПодразделенияФизлицГПХ.ДоговорДействует)
|
|СГРУППИРОВАТЬ ПО
| ПодразделенияФизлицГПХ.Физлицо,
| ПодразделенияФизлицГПХ.ДатаОкончания
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПодразделенияФизлицДействующихДоговоров.ФизЛицо КАК ФизЛицо,
| ПодразделенияФизлицДействующихДоговоров.Подразделение КАК Подразделение,
| ПодразделенияФизлицДействующихДоговоров.ДатаАктуальности КАК ДатаАктуальности,
| ИСТИНА КАК Работает
|ПОМЕСТИТЬ ВТАктуальныеПодразделенияФизлицГПХ
|ИЗ
| ВТПодразделенияФизлицДействующихДоговоров КАК ПодразделенияФизлицДействующихДоговоров
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПодразделенияФизлицЗавершившихсяДоговоров.ФизЛицо,
| ПодразделенияФизлицЗавершившихсяДоговоров.Подразделение,
| ПодразделенияФизлицЗавершившихсяДоговоров.ДатаАктуальности,
| ЛОЖЬ
|ИЗ
| ВТПодразделенияФизлицЗавершившихсяДоговоров КАК ПодразделенияФизлицЗавершившихсяДоговоров
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПодразделенияФизлицДействующихДоговоров КАК ПодразделенияФизлицДействующихДоговоров
| ПО (ПодразделенияФизлицДействующихДоговоров.ФизЛицо = ПодразделенияФизлицЗавершившихсяДоговоров.ФизЛицо)
|ГДЕ
| ПодразделенияФизлицДействующихДоговоров.ФизЛицо ЕСТЬ NULL
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ПодразделенияФизлиц.ФизЛицо КАК ФизЛицо
|ПОМЕСТИТЬ ВТРаботники
|ИЗ
| ВТАктуальныеПодразделенияФизлицШтат КАК ПодразделенияФизлиц
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПодразделенияФизлиц.ФизЛицо
|ИЗ
| ВТАктуальныеПодразделенияФизлицГПХ КАК ПодразделенияФизлиц
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Работники.ФизЛицо
|ИЗ
| ВТРаботники КАК Работники
| ЛЕВОЕ СОЕДИНЕНИЕ ВТАктуальныеПодразделенияФизлицШтат КАК ПодразделенияФизлицШтат
| ПО (ПодразделенияФизлицШтат.ФизЛицо = Работники.ФизЛицо)
| ЛЕВОЕ СОЕДИНЕНИЕ ВТАктуальныеПодразделенияФизлицГПХ КАК ПодразделенияФизлицГПХ
| ПО (ПодразделенияФизлицГПХ.ФизЛицо = Работники.ФизЛицо)
|ГДЕ
| ВЫБОР
| КОГДА ПодразделенияФизлицШтат.Работает ЕСТЬ NULL
| И ПодразделенияФизлицГПХ.Работает ЕСТЬ NULL
| ТОГДА ИСТИНА
| ИНАЧЕ ВЫБОР
| КОГДА ПодразделенияФизлицШтат.Работает ЕСТЬ NULL
| ТОГДА ПодразделенияФизлицГПХ.Подразделение
| КОГДА ПодразделенияФизлицШтат.Работает
| ТОГДА ПодразделенияФизлицШтат.Подразделение
| КОГДА ПодразделенияФизлицГПХ.Работает
| ТОГДА ПодразделенияФизлицГПХ.Подразделение
| КОГДА ПодразделенияФизлицШтат.ДатаАктуальности < ПодразделенияФизлицГПХ.ДатаАктуальности
| ТОГДА ПодразделенияФизлицГПХ.Подразделение
| ИНАЧЕ ПодразделенияФизлицШтат.Подразделение
| КОНЕЦ В ИЕРАРХИИ (&ПодразделениеОрганизации)
| КОНЕЦ";*/
return null;
}