V82.ОбщиеМодули.ЗарплатаКВыплатеОрганизацийСервис.ПолучитьФизлицаСотрудниковПодразделенияНаДату C# (CSharp) Method

ПолучитьФизлицаСотрудниковПодразделенияНаДату() public method

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