Загрузка данных


ВЫБРАТЬ РАЗРЕШЕННЫЕ
	СтруктураПредприятия.Ссылка КАК Подразделение,
	СтруктураПредприятия.Родитель КАК Родитель,
	СтруктураПредприятия.Код КАК Код,
	СтруктураПредприятия.Наименование КАК Наименование,
	СтруктураПредприятия.ТекущийРуководитель КАК ТекущийРуководитель,
	СтруктураПредприятия.CRM_офис КАК CRM_офис,
	СтруктураПредприятия.еис_Дирекция КАК еис_Дирекция,
	СтруктураПредприятия.еис_ПолноеНаименование КАК еис_ПолноеНаименование,
	СтруктураПредприятия.Родитель.Код КАК РодительКод
ПОМЕСТИТЬ Вт_ПодразделенияКазань
ИЗ
	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
ГДЕ
	СтруктураПредприятия.Ссылка В ИЕРАРХИИ(&КорневоеПодразделение)
	И СтруктураПредприятия.Ссылка В ИЕРАРХИИ(&ВыгружаемыеПодразделения)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	СтруктураПредприятия.Ссылка,
	СтруктураПредприятия.Родитель,
	СтруктураПредприятия.Код,
	СтруктураПредприятия.Наименование,
	СтруктураПредприятия.ТекущийРуководитель,
	СтруктураПредприятия.CRM_офис,
	СтруктураПредприятия.еис_Дирекция,
	СтруктураПредприятия.еис_ПолноеНаименование,
	СтруктураПредприятия.Родитель.Код
ИЗ
	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
ГДЕ
	СтруктураПредприятия.Ссылка = &КорневоеПодразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	еис_Работники.ФизЛицо КАК ФизЛицо
ПОМЕСТИТЬ вт_ФизЛицаСЗаписямиПослеПериода
ИЗ
	РегистрСведений.еис_Работники КАК еис_Работники
ГДЕ
	еис_Работники.Период >= &Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	еис_Работники.ФизЛицо КАК ФизЛицо,
	еис_Работники.Подразделение КАК Подразделение,
	еис_Работники.Ставка КАК Ставка,
	еис_Работники.ФизЛицо.Логин КАК Логин,
	еис_Работники.Период КАК Период,
	РаботникиДатаПриемаНаРаботу.Период КАК ДатаПриемаНаРаботу,
	ВЫБОР
		КОГДА РаботникиДатаУвольнения.ПричинаИзмененияСостоянияРаботника = ЗНАЧЕНИЕ(Перечисление.еис_ПричиныИзмененияСостоянияРаботника.Увольнение)
			ТОГДА РаботникиДатаУвольнения.Период
	КОНЕЦ КАК ДатаУвольнения,
	еис_Работники.ПричинаИзмененияСостоянияРаботника КАК ПричинаИзмененияСостоянияРаботника,
	еис_Работники.ТипОтношений КАК ТипОтношений,
	ВЫБОР
		КОГДА еис_Работники.Должность.Наименование = "Руководитель группы"
			ТОГДА "Рук. группы"
		ИНАЧЕ ""
	КОНЕЦ КАК КлассСотрудника,
	ВЫБОР
		КОГДА еис_Работники.Должность.Наименование = "И.о. руководителя группы"
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК ЭтоЗаместительРуководителяГруппы
ПОМЕСТИТЬ вт_ЗаписиРаботников
ИЗ
	РегистрСведений.еис_Работники КАК еис_Работники
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.еис_Работники.СрезПервых(, ) КАК РаботникиДатаПриемаНаРаботу
		ПО еис_Работники.ФизЛицо = РаботникиДатаПриемаНаРаботу.ФизЛицо
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.еис_Работники.СрезПоследних(, ) КАК РаботникиДатаУвольнения
		ПО еис_Работники.ФизЛицо = РаботникиДатаУвольнения.ФизЛицо
ГДЕ
	еис_Работники.Период >= &Период

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	еис_РаботникиСрезПоследних.ФизЛицо,
	еис_РаботникиСрезПоследних.Подразделение,
	еис_РаботникиСрезПоследних.Ставка,
	еис_РаботникиСрезПоследних.ФизЛицо.Логин,
	еис_РаботникиСрезПоследних.Период,
	РаботникиДатаПриемаНаРаботу.Период,
	ВЫБОР
		КОГДА РаботникиДатаУвольнения.ПричинаИзмененияСостоянияРаботника = ЗНАЧЕНИЕ(Перечисление.еис_ПричиныИзмененияСостоянияРаботника.Увольнение)
			ТОГДА РаботникиДатаУвольнения.Период
	КОНЕЦ,
	еис_РаботникиСрезПоследних.ПричинаИзмененияСостоянияРаботника,
	еис_РаботникиСрезПоследних.ТипОтношений,
	ВЫБОР
		КОГДА еис_РаботникиСрезПоследних.Должность.Наименование = "Руководитель группы"
			ТОГДА "Рук. группы"
		ИНАЧЕ ""
	КОНЕЦ,
	ВЫБОР
		КОГДА еис_РаботникиСрезПоследних.Должность.Наименование = "И.о. руководителя группы"
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ
ИЗ
	РегистрСведений.еис_Работники.СрезПоследних(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ) КАК еис_РаботникиСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.еис_Работники.СрезПервых(, ) КАК РаботникиДатаПриемаНаРаботу
		ПО еис_РаботникиСрезПоследних.ФизЛицо = РаботникиДатаПриемаНаРаботу.ФизЛицо
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.еис_Работники.СрезПоследних(, ) КАК РаботникиДатаУвольнения
		ПО еис_РаботникиСрезПоследних.ФизЛицо = РаботникиДатаУвольнения.ФизЛицо
		ЛЕВОЕ СОЕДИНЕНИЕ вт_ФизЛицаСЗаписямиПослеПериода КАК вт_ФизЛицаСЗаписямиПослеПериода
		ПО еис_РаботникиСрезПоследних.ФизЛицо = вт_ФизЛицаСЗаписямиПослеПериода.ФизЛицо
ГДЕ
	вт_ФизЛицаСЗаписямиПослеПериода.ФизЛицо ЕСТЬ NULL
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_ЗаписиРаботников.ФизЛицо КАК ФизЛицо,
	вт_ЗаписиРаботников.Период КАК ПериодРаботника,
	МАКСИМУМ(КадровыйПриказ.ДатаПриказа) КАК МаксДатаПриказа
ПОМЕСТИТЬ вт_МаксДатаПриказа
ИЗ
	вт_ЗаписиРаботников КАК вт_ЗаписиРаботников
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.еис_КадровыйПриказ КАК КадровыйПриказ
		ПО вт_ЗаписиРаботников.ФизЛицо = КадровыйПриказ.ФизическоеЛицо
			И (КадровыйПриказ.ДатаПриказа <= вт_ЗаписиРаботников.Период)
			И (КадровыйПриказ.Проведен)

СГРУППИРОВАТЬ ПО
	вт_ЗаписиРаботников.ФизЛицо,
	вт_ЗаписиРаботников.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_МаксДатаПриказа.ФизЛицо КАК ФизЛицо,
	вт_МаксДатаПриказа.ПериодРаботника КАК ПериодРаботника,
	ВЫБОР
		КОГДА НЕ КадровыйПриказ.УровеньКвалификации ЕСТЬ NULL
				И НЕ КадровыйПриказ.УровеньКвалификации = ЗНАЧЕНИЕ(Справочник.еис_УровниКвалификации.ПустаяСсылка)
			ТОГДА КадровыйПриказ.УровеньКвалификации
		КОГДА НЕ КадровыйПриказ.удалитьКомпетентность ЕСТЬ NULL
				И НЕ КадровыйПриказ.удалитьКомпетентность = ЗНАЧЕНИЕ(Справочник.еис_НаборыКомпетенций.ПустаяСсылка)
			ТОГДА КадровыйПриказ.удалитьКомпетентность
		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.еис_НаборыКомпетенций.ПустаяСсылка)
	КОНЕЦ КАК Должность,
	ВЫБОР
		КОГДА НЕ КадровыйПриказ.УровеньКвалификации ЕСТЬ NULL
				И НЕ КадровыйПриказ.УровеньКвалификации = ЗНАЧЕНИЕ(Справочник.еис_УровниКвалификации.ПустаяСсылка)
			ТОГДА КадровыйПриказ.УровеньКвалификации.Наименование
		КОГДА НЕ КадровыйПриказ.удалитьКомпетентность ЕСТЬ NULL
				И НЕ КадровыйПриказ.удалитьКомпетентность = ЗНАЧЕНИЕ(Справочник.еис_НаборыКомпетенций.ПустаяСсылка)
			ТОГДА КадровыйПриказ.удалитьКомпетентность.Наименование
		ИНАЧЕ "Не удалось определить"
	КОНЕЦ КАК ДолжностьНаименование,
	ВЫБОР
		КОГДА НЕ КадровыйПриказ.УровеньКвалификации ЕСТЬ NULL
				И НЕ КадровыйПриказ.УровеньКвалификации = ЗНАЧЕНИЕ(Справочник.еис_УровниКвалификации.ПустаяСсылка)
			ТОГДА ЕСТЬNULL(КадровыйПриказ.УровеньКвалификации.Код, 0)
		КОГДА НЕ КадровыйПриказ.удалитьКомпетентность ЕСТЬ NULL
				И НЕ КадровыйПриказ.удалитьКомпетентность = ЗНАЧЕНИЕ(Справочник.еис_НаборыКомпетенций.ПустаяСсылка)
			ТОГДА ЕСТЬNULL(КадровыйПриказ.удалитьКомпетентность.УровеньКвалификации.Код, 0)
		ИНАЧЕ 0
	КОНЕЦ КАК УровеньКомпетентности,
	ЕСТЬNULL(КадровыйПриказ.ДолжностьУпр.Наименование, "") КАК ДолжностьПоПриказу
ПОМЕСТИТЬ вт_КомпетентностьИзПриказа
ИЗ
	вт_МаксДатаПриказа КАК вт_МаксДатаПриказа
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.еис_КадровыйПриказ КАК КадровыйПриказ
		ПО вт_МаксДатаПриказа.ФизЛицо = КадровыйПриказ.ФизическоеЛицо
			И вт_МаксДатаПриказа.МаксДатаПриказа = КадровыйПриказ.ДатаПриказа
			И (КадровыйПриказ.Проведен)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_ЗаписиРаботников.ФизЛицо КАК ФизЛицо,
	вт_ЗаписиРаботников.Подразделение КАК Подразделение,
	вт_ЗаписиРаботников.Ставка КАК Ставка,
	вт_ЗаписиРаботников.Логин КАК Логин,
	вт_ЗаписиРаботников.Период КАК Период,
	вт_ЗаписиРаботников.ДатаПриемаНаРаботу КАК ДатаПриемаНаРаботу,
	вт_ЗаписиРаботников.ДатаУвольнения КАК ДатаУвольнения,
	вт_ЗаписиРаботников.ПричинаИзмененияСостоянияРаботника КАК ПричинаИзмененияСостоянияРаботника,
	ЕСТЬNULL(вт_КомпетентностьИзПриказа.Должность, ЗНАЧЕНИЕ(Справочник.еис_НаборыКомпетенций.ПустаяСсылка)) КАК Должность,
	ЕСТЬNULL(вт_КомпетентностьИзПриказа.ДолжностьНаименование, "Не удалось определить") КАК ДолжностьНаименование,
	ЕСТЬNULL(вт_КомпетентностьИзПриказа.УровеньКомпетентности, 0) КАК УровеньКомпетентности,
	вт_ЗаписиРаботников.ТипОтношений КАК ТипОтношений,
	вт_ЗаписиРаботников.КлассСотрудника КАК КлассСотрудника,
	вт_ЗаписиРаботников.ЭтоЗаместительРуководителяГруппы КАК ЭтоЗаместительРуководителяГруппы,
	ЕСТЬNULL(вт_КомпетентностьИзПриказа.ДолжностьПоПриказу, "") КАК ДолжностьПоПриказу
ПОМЕСТИТЬ вт_ПодразделенияСотрудниковСрез
ИЗ
	вт_ЗаписиРаботников КАК вт_ЗаписиРаботников
		ЛЕВОЕ СОЕДИНЕНИЕ вт_КомпетентностьИзПриказа КАК вт_КомпетентностьИзПриказа
		ПО вт_ЗаписиРаботников.ФизЛицо = вт_КомпетентностьИзПриказа.ФизЛицо
			И вт_ЗаписиРаботников.Период = вт_КомпетентностьИзПриказа.ПериодРаботника
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_ПодразделенияСотрудниковСрез.ФизЛицо КАК ФизЛицо,
	МИНИМУМ(ФизическиеЛицаКонтактнаяИнформация.НомерСтроки) КАК НомерСтроки,
	ФизическиеЛицаКонтактнаяИнформация.Тип КАК Тип,
	ФизическиеЛицаКонтактнаяИнформация.Вид КАК Вид
ПОМЕСТИТЬ вт_НомерСтрокиКонтактнойИнформации
ИЗ
	вт_ПодразделенияСотрудниковСрез КАК вт_ПодразделенияСотрудниковСрез
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
		ПО вт_ПодразделенияСотрудниковСрез.ФизЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка
			И (ФизическиеЛицаКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
			И (ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailФизическогоЛица))

СГРУППИРОВАТЬ ПО
	вт_ПодразделенияСотрудниковСрез.ФизЛицо,
	ФизическиеЛицаКонтактнаяИнформация.Тип,
	ФизическиеЛицаКонтактнаяИнформация.Вид

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	вт_ПодразделенияСотрудниковСрез.ФизЛицо,
	МИНИМУМ(ФизическиеЛицаКонтактнаяИнформация.НомерСтроки),
	ФизическиеЛицаКонтактнаяИнформация.Тип,
	ФизическиеЛицаКонтактнаяИнформация.Вид
ИЗ
	вт_ПодразделенияСотрудниковСрез КАК вт_ПодразделенияСотрудниковСрез
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
		ПО вт_ПодразделенияСотрудниковСрез.ФизЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка
			И (ФизическиеЛицаКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Другое))
			И (ФизическиеЛицаКонтактнаяИнформация.Вид.Наименование = &ЛитералТелеграм)

СГРУППИРОВАТЬ ПО
	вт_ПодразделенияСотрудниковСрез.ФизЛицо,
	ФизическиеЛицаКонтактнаяИнформация.Тип,
	ФизическиеЛицаКонтактнаяИнформация.Вид
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_НомерСтрокиКонтактнойИнформации.ФизЛицо КАК ФизЛицо,
	ФизическиеЛицаКонтактнаяИнформация.Представление КАК КонтактнаяИнформация,
	вт_НомерСтрокиКонтактнойИнформации.Тип КАК Тип,
	вт_НомерСтрокиКонтактнойИнформации.Вид КАК Вид
ПОМЕСТИТЬ вт_КонтактнаяИнформация
ИЗ
	вт_НомерСтрокиКонтактнойИнформации КАК вт_НомерСтрокиКонтактнойИнформации
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
		ПО вт_НомерСтрокиКонтактнойИнформации.ФизЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка
			И вт_НомерСтрокиКонтактнойИнформации.НомерСтроки = ФизическиеЛицаКонтактнаяИнформация.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	еис_Работники.Период КАК Период,
	еис_Работники.ФизЛицо КАК ФизЛицо
ПОМЕСТИТЬ вт_ПериодыПодразделенияДекретАрмия
ИЗ
	РегистрСведений.еис_Работники КАК еис_Работники
ГДЕ
	(еис_Работники.Подразделение = &ПодразделениеДекретАрмия
			ИЛИ еис_Работники.ТипОтношений = ЗНАЧЕНИЕ(Перечисление.еис_ТипыОтношенийССотрудниками.Декретник))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	МАКСИМУМ(еис_Работники.Период) КАК Период,
	еис_Работники.ФизЛицо КАК ФизЛицо,
	вт_ПериодыПодразделенияДекретАрмия.Период КАК ПериодДекрет
ПОМЕСТИТЬ вт_ПериодыПредыдущегоПодразделения
ИЗ
	вт_ПериодыПодразделенияДекретАрмия КАК вт_ПериодыПодразделенияДекретАрмия
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.еис_Работники КАК еис_Работники
		ПО вт_ПериодыПодразделенияДекретАрмия.ФизЛицо = еис_Работники.ФизЛицо
			И вт_ПериодыПодразделенияДекретАрмия.Период > еис_Работники.Период
ГДЕ
	еис_Работники.Подразделение <> &ПодразделениеДекретАрмия

СГРУППИРОВАТЬ ПО
	еис_Работники.ФизЛицо,
	вт_ПериодыПодразделенияДекретАрмия.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_ПериодыПредыдущегоПодразделения.ПериодДекрет КАК ПериодДекрет,
	еис_Работники.ФизЛицо КАК ФизЛицо,
	еис_Работники.Подразделение КАК Подразделение
ПОМЕСТИТЬ вт_ПредыдущееПодразделение
ИЗ
	вт_ПериодыПредыдущегоПодразделения КАК вт_ПериодыПредыдущегоПодразделения
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.еис_Работники КАК еис_Работники
		ПО вт_ПериодыПредыдущегоПодразделения.ФизЛицо = еис_Работники.ФизЛицо
			И вт_ПериодыПредыдущегоПодразделения.Период = еис_Работники.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_ПодразделенияСотрудниковСрез.ФизЛицо КАК ФизЛицо,
	вт_ПодразделенияСотрудниковСрез.Ставка КАК Ставка,
	вт_ПодразделенияСотрудниковСрез.Логин КАК Логин,
	вт_ПодразделенияСотрудниковСрез.ФизЛицо.Фамилия + " " + вт_ПодразделенияСотрудниковСрез.ФизЛицо.Имя + " " + вт_ПодразделенияСотрудниковСрез.ФизЛицо.Отчество КАК ФизЛицоФИО,
	НАЧАЛОПЕРИОДА(вт_ПодразделенияСотрудниковСрез.Период, МЕСЯЦ) КАК ПериодМесяц,
	вт_ПодразделенияСотрудниковСрез.Период КАК Период,
	вт_ПодразделенияСотрудниковСрез.ДатаПриемаНаРаботу КАК ДатаПриемаНаРаботу,
	вт_ПодразделенияСотрудниковСрез.ДатаУвольнения КАК ДатаУвольнения,
	ВЫБОР
		КОГДА вт_ПодразделенияСотрудниковСрез.ПричинаИзмененияСостоянияРаботника = ЗНАЧЕНИЕ(Перечисление.еис_ПричиныИзмененияСостоянияРаботника.Увольнение)
			ТОГДА "Уволен"
		КОГДА вт_ПодразделенияСотрудниковСрез.Подразделение = &ПодразделениеДекретАрмия
				ИЛИ вт_ПодразделенияСотрудниковСрез.ТипОтношений = ЗНАЧЕНИЕ(Перечисление.еис_ТипыОтношенийССотрудниками.Декретник)
			ТОГДА "Декрет"
		КОГДА (вт_ПодразделенияСотрудниковСрез.ПричинаИзмененияСостоянияРаботника = ЗНАЧЕНИЕ(Перечисление.еис_ПричиныИзмененияСостоянияРаботника.ПриемНаРаботу)
				ИЛИ вт_ПодразделенияСотрудниковСрез.ПричинаИзмененияСостоянияРаботника = ЗНАЧЕНИЕ(Перечисление.еис_ПричиныИзмененияСостоянияРаботника.Перемещение))
				И НЕ вт_ПодразделенияСотрудниковСрез.Подразделение = &ПодразделениеДекретАрмия
			ТОГДА "Работает"
		ИНАЧЕ "Неизвестно"
	КОНЕЦ КАК Состояние,
	вт_ПодразделенияСотрудниковСрез.ПричинаИзмененияСостоянияРаботника КАК ПричинаИзмененияСостоянияРаботника,
	ВЫБОР
		КОГДА вт_ПодразделенияСотрудниковСрез.Подразделение = &ПодразделениеДекретАрмия
			ТОГДА вт_ПредыдущееПодразделение.Подразделение
		ИНАЧЕ вт_ПодразделенияСотрудниковСрез.Подразделение
	КОНЕЦ КАК Подразделение,
	вт_ПодразделенияСотрудниковСрез.Должность КАК Должность,
	вт_ПодразделенияСотрудниковСрез.ДолжностьНаименование КАК ДолжностьНаименование,
	вт_ПодразделенияСотрудниковСрез.УровеньКомпетентности КАК УровеньКомпетентности,
	вт_ПодразделенияСотрудниковСрез.КлассСотрудника КАК КлассСотрудника,
	вт_ПодразделенияСотрудниковСрез.ЭтоЗаместительРуководителяГруппы КАК ЭтоЗаместительРуководителяГруппы,
	вт_КонтактнаяИнформацияПочта.КонтактнаяИнформация КАК АдресЭП,
	вт_КонтактнаяИнформацияТелеграм.КонтактнаяИнформация КАК Telegram,
	вт_ПодразделенияСотрудниковСрез.ДолжностьПоПриказу КАК ДолжностьПоПриказу
ПОМЕСТИТЬ вт_ПодразделенияИтоговый
ИЗ
	вт_ПодразделенияСотрудниковСрез КАК вт_ПодразделенияСотрудниковСрез
		ЛЕВОЕ СОЕДИНЕНИЕ вт_ПредыдущееПодразделение КАК вт_ПредыдущееПодразделение
		ПО вт_ПодразделенияСотрудниковСрез.ФизЛицо = вт_ПредыдущееПодразделение.ФизЛицо
			И вт_ПодразделенияСотрудниковСрез.Период = вт_ПредыдущееПодразделение.ПериодДекрет
		ЛЕВОЕ СОЕДИНЕНИЕ вт_КонтактнаяИнформация КАК вт_КонтактнаяИнформацияПочта
		ПО вт_ПодразделенияСотрудниковСрез.ФизЛицо = вт_КонтактнаяИнформацияПочта.ФизЛицо
			И (вт_КонтактнаяИнформацияПочта.Тип = ЗНАЧЕНИЕ(Перечисление.Типыконтактнойинформации.АдресЭлектроннойПочты))
			И (вт_КонтактнаяИнформацияПочта.Вид = ЗНАЧЕНИЕ(справочник.видыконтактнойинформации.EmailФизическогоЛица))
		ЛЕВОЕ СОЕДИНЕНИЕ вт_КонтактнаяИнформация КАК вт_КонтактнаяИнформацияТелеграм
		ПО вт_ПодразделенияСотрудниковСрез.ФизЛицо = вт_КонтактнаяИнформацияТелеграм.ФизЛицо
			И (вт_КонтактнаяИнформацияТелеграм.Тип = ЗНАЧЕНИЕ(перечисление.типыконтактнойинформации.другое))
			И (вт_КонтактнаяИнформацияТелеграм.Вид.Наименование = &ЛитералТелеграм)
ГДЕ
	(вт_ПодразделенияСотрудниковСрез.ДатаУвольнения > &Период
			ИЛИ вт_ПодразделенияСотрудниковСрез.ДатаУвольнения ЕСТЬ NULL)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_ПодразделенияИтоговый.ФизЛицо КАК ФизЛицо,
	Вт_ПодразделенияКазань.Подразделение КАК Подразделение,
	Вт_ПодразделенияКазань.Родитель КАК ПодразделениеРодитель,
	Вт_ПодразделенияКазань.Код КАК Код,
	Вт_ПодразделенияКазань.Наименование КАК ПодразделениеНаименование,
	Вт_ПодразделенияКазань.ТекущийРуководитель КАК ТекущийРуководитель,
	вт_ПодразделенияИтоговый.Ставка КАК Ставка,
	вт_ПодразделенияИтоговый.Логин КАК Логин,
	Вт_ПодразделенияКазань.Родитель.Наименование КАК ПодразделениеРодительНаименование,
	вт_ПодразделенияИтоговый.ФизЛицоФИО КАК ФизЛицоФИО,
	Вт_ПодразделенияКазань.РодительКод КАК РодительКод,
	вт_ПодразделенияИтоговый.ПериодМесяц КАК ПериодМесяц,
	вт_ПодразделенияИтоговый.Период КАК Период,
	вт_ПодразделенияИтоговый.ДатаПриемаНаРаботу КАК ДатаПриемаНаРаботу,
	вт_ПодразделенияИтоговый.ДатаУвольнения КАК ДатаУвольнения,
	вт_ПодразделенияИтоговый.Состояние КАК Состояние,
	вт_ПодразделенияИтоговый.Должность КАК Должность,
	вт_ПодразделенияИтоговый.ДолжностьНаименование КАК ДолжностьНаименование,
	вт_ПодразделенияИтоговый.УровеньКомпетентности КАК УровеньКомпетентности,
	вт_ПодразделенияИтоговый.КлассСотрудника КАК КлассСотрудника,
	вт_ПодразделенияИтоговый.ЭтоЗаместительРуководителяГруппы КАК ЭтоЗаместительРуководителяГруппы,
	вт_ПодразделенияИтоговый.АдресЭП КАК АдресЭП,
	вт_ПодразделенияИтоговый.Telegram КАК Telegram,
	вт_ПодразделенияИтоговый.ДолжностьПоПриказу КАК ДолжностьПоПриказу
ПОМЕСТИТЬ вт_Итоговый
ИЗ
	вт_ПодразделенияИтоговый КАК вт_ПодразделенияИтоговый
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Вт_ПодразделенияКазань КАК Вт_ПодразделенияКазань
		ПО вт_ПодразделенияИтоговый.Подразделение = Вт_ПодразделенияКазань.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	КадровыйПриказ.ФизическоеЛицо КАК ФизическоеЛицо,
	МАКСИМУМ(КадровыйПриказ.ДатаПриказа) КАК ДатаУвольнения
ПОМЕСТИТЬ вт_КадровыйПриказНаУвольнение
ИЗ
	Документ.еис_КадровыйПриказ КАК КадровыйПриказ
ГДЕ
	КадровыйПриказ.ХозяйственнаяОперация = &ХозОперацияУвольнение
	И КадровыйПриказ.Организация В(&ОрганизацияКЗНРарус)
	И КадровыйПриказ.ДатаПриказа >= &Период
	И КадровыйПриказ.Проведен

СГРУППИРОВАТЬ ПО
	КадровыйПриказ.ФизическоеЛицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вт_Итоговый.ФизЛицо КАК ФизЛицо,
	вт_Итоговый.Подразделение КАК Подразделение,
	вт_Итоговый.ПодразделениеРодитель КАК ПодразделениеРодитель,
	вт_Итоговый.Код КАК Код,
	вт_Итоговый.ПодразделениеНаименование КАК ПодразделениеНаименование,
	вт_Итоговый.ТекущийРуководитель КАК ТекущийРуководитель,
	вт_Итоговый.Ставка КАК Ставка,
	вт_Итоговый.Логин КАК Логин,
	вт_Итоговый.ПодразделениеРодительНаименование КАК ПодразделениеРодительНаименование,
	вт_Итоговый.ФизЛицоФИО КАК ФизЛицоФИО,
	вт_Итоговый.РодительКод КАК РодительКод,
	вт_Итоговый.ПериодМесяц КАК ПериодМесяц,
	вт_Итоговый.Период КАК Период,
	вт_Итоговый.ДатаПриемаНаРаботу КАК ДатаПриемаНаРаботу,
	ВЫБОР
		КОГДА вт_Итоговый.ДатаУвольнения ЕСТЬ NULL
			ТОГДА ВЫБОР
					КОГДА НЕ вт_КадровыйПриказНаУвольнение.ДатаУвольнения ЕСТЬ NULL
							И вт_КадровыйПриказНаУвольнение.ДатаУвольнения > вт_Итоговый.ДатаПриемаНаРаботу
						ТОГДА вт_КадровыйПриказНаУвольнение.ДатаУвольнения
					ИНАЧЕ NULL
				КОНЕЦ
		ИНАЧЕ вт_Итоговый.ДатаУвольнения
	КОНЕЦ КАК ДатаУвольнения,
	вт_Итоговый.Состояние КАК Состояние,
	ЕСТЬNULL(вт_Итоговый.Должность, ЗНАЧЕНИЕ(Справочник.еис_НаборыКомпетенций.ПустаяСсылка)) КАК Должность,
	ЕСТЬNULL(вт_Итоговый.ДолжностьНаименование, "Не удалось определить") КАК ДолжностьНаименование,
	ЕСТЬNULL(вт_Итоговый.УровеньКомпетентности, 0) КАК УровеньКомпетентности,
	вт_Итоговый.КлассСотрудника КАК КлассСотрудника,
	вт_Итоговый.ЭтоЗаместительРуководителяГруппы КАК ЭтоЗаместительРуководителяГруппы,
	вт_Итоговый.АдресЭП КАК АдресЭП,
	вт_Итоговый.Telegram КАК Telegram,
	ЕСТЬNULL(вт_Итоговый.ДолжностьПоПриказу, "") КАК ДолжностьПоПриказу
ИЗ
	вт_Итоговый КАК вт_Итоговый
		ЛЕВОЕ СОЕДИНЕНИЕ вт_КадровыйПриказНаУвольнение КАК вт_КадровыйПриказНаУвольнение
		ПО вт_Итоговый.ФизЛицо = вт_КадровыйПриказНаУвольнение.ФизическоеЛицо

УПОРЯДОЧИТЬ ПО
	ФизЛицо,
	Период,
	Подразделение