V82.ОбщиеМодули.ПолныеПраваЗК.ВременноСвободныеСтавкиСтрокШтатногоРасписания C# (CSharp) Method

ВременноСвободныеСтавкиСтрокШтатногоРасписания() public method

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