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


&НаСервере
Процедура ЗаполнитьДанныеСотрудников()
	
	// [+] #000000185362 [rarus kzn] shabal 2026-02-24 {	
	Запрос = Новый Запрос(ТекстЗапросаДанныеСотрудников());
	
	Запрос.УстановитьПараметр("Период", Дата("20230101"));
	Запрос.УстановитьПараметр("КорневоеПодразделение", КорневоеПодразделение);
	ВыгружаемыеПодразделенияМассив = ВыгружаемыеПодразделения.Выгрузить().ВыгрузитьКолонку("Подразделение");	
	Запрос.УстановитьПараметр("ВыгружаемыеПодразделения", ВыгружаемыеПодразделенияМассив);
	Запрос.УстановитьПараметр("ЛитералТелеграм", "Telegram");
	
	Запрос.УстановитьПараметр("ПодразделениеДекретАрмия", ПодразделениеДекретАрмия);
	
	Запрос.УстановитьПараметр("ХозОперацияУвольнение", ХозОперацияУвольнение);
	Запрос.УстановитьПараметр("ОрганизацияКЗНРарус", СписокОрганизацийКзнРарус);
	
	РезультатЗапроса = Запрос.Выполнить();	
	
	Сотрудники = РезультатЗапроса.Выгрузить();
	
	МакетСоответствияКомпетенцийУровнямКвалификаций = РеквизитФормыВЗначение("Объект").ПолучитьМакет("МакетСоответствияКомпетенцийУровнямКвалификаций");
	
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций = Новый ТаблицаЗначений;
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Колонки.Добавить("Наименование");
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Колонки.Добавить("КомпетентностьУУИД");
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Колонки.Добавить("УровеньКвалификации");
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Колонки.Добавить("УровеньКвалификацииУУИД");
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Колонки.Добавить("КлассСотрудника");  
	ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Колонки.Добавить("УровеньКомпетентности");
		
		
	Для Сч = 2 По МакетСоответствияКомпетенцийУровнямКвалификаций.ВысотаТаблицы Цикл
		
		Строка = ТаблицаСоответствияКомпетенцийУровнямКвалификаций.Добавить();
		Строка.Наименование 			= МакетСоответствияКомпетенцийУровнямКвалификаций.Область(Сч, 2).Текст;
		Строка.КомпетентностьУУИД 		= МакетСоответствияКомпетенцийУровнямКвалификаций.Область(Сч, 3).Текст;
		Строка.УровеньКвалификации 		= МакетСоответствияКомпетенцийУровнямКвалификаций.Область(Сч, 4).Текст;
		Строка.УровеньКвалификацииУУИД 	= МакетСоответствияКомпетенцийУровнямКвалификаций.Область(Сч, 5).Текст;
		Строка.КлассСотрудника 			= МакетСоответствияКомпетенцийУровнямКвалификаций.Область(Сч, 6).Текст;
		Строка.УровеньКомпетентности 	= МакетСоответствияКомпетенцийУровнямКвалификаций.Область(Сч, 7).Текст;
		
	КонецЦикла;
	
	Для Каждого СтрокаСотрудник Из Сотрудники Цикл       
		
		НоваяСтрокаСотрудник = ТаблицаСотрудники.Добавить();
		НоваяСтрокаСотрудник.СотрудникНаименование 			= СтрокаСотрудник.ФизЛицо; 	
		НоваяСтрокаСотрудник.СотрудникГУИД 					= СтрокаСотрудник.ФизЛицо.УникальныйИдентификатор();
		НоваяСтрокаСотрудник.ПодразделениеГУИД 				= СтрокаСотрудник.Подразделение.УникальныйИдентификатор();
		НоваяСтрокаСотрудник.ДолжностьГУИД 					= СтрокаСотрудник.Должность.УникальныйИдентификатор(); 	
		НоваяСтрокаСотрудник.ДолжностьНаименование 			= СтрокаСотрудник.ДолжностьНаименование; 
		НоваяСтрокаСотрудник.КлассификацияРуководителяНаименование = СтрокаСотрудник.ДолжностьПоПриказу;
		
		ИсходныйДолжностьГУИД = НоваяСтрокаСотрудник.ДолжностьГУИД; 
		УровеньКомпетентностиИзМакета = 0;
		
		Для Каждого СтрокаСоответствия Из ТаблицаСоответствияКомпетенцийУровнямКвалификаций Цикл    
	
			Если СтрокаСоответствия.УровеньКвалификацииУУИД = ИсходныйДолжностьГУИД 
				//И СтрокаСоответствия.КлассСотрудника = СтрокаСотрудник.КлассСотрудника 
				Тогда   
				
				НоваяСтрокаСотрудник.ДолжностьГУИД = СтрокаСоответствия.КомпетентностьУУИД;
				НоваяСтрокаСотрудник.ДолжностьНаименование = СтрокаСоответствия.Наименование;  
				УровеньКомпетентностиИзМакета = Число(СтрокаСоответствия.УровеньКомпетентности);
				
				Прервать;       
				
			КонецЕсли;
			
		КонецЦикла;
		
		НоваяСтрокаСотрудник.РуководительПодразделенияГУИД 	= СтрокаСотрудник.ТекущийРуководитель.УникальныйИдентификатор();
		НоваяСтрокаСотрудник.Ставка 						= СтрокаСотрудник.Ставка;
		НоваяСтрокаСотрудник.ПериодМесяц 					= СтрокаСотрудник.ПериодМесяц;
		НоваяСтрокаСотрудник.Логин 							= СтрокаСотрудник.Логин;
		НоваяСтрокаСотрудник.ДатаПриемаНаРаботу 			= СтрокаСотрудник.ДатаПриемаНаРаботу; 
		НоваяСтрокаСотрудник.ДатаУвольнения 				= СтрокаСотрудник.ДатаУвольнения;
		НоваяСтрокаСотрудник.Состояние 						= СтрокаСотрудник.Состояние;
		НоваяСтрокаСотрудник.АдресЭП 						= СтрокаСотрудник.АдресЭП;
		НоваяСтрокаСотрудник.Telegram						= СтрокаСотрудник.Telegram;
		
		НаименованияДолжностейБезСтажеров = НаименованияДолжностейБезСтажеров();         
		
		Если НаименованияДолжностейБезСтажеров.Найти(СтрокаСотрудник.ДолжностьНаименование) <> Неопределено Тогда
			УровеньКомпетентности = СтрокаСотрудник.УровеньКомпетентности;
		Иначе
			УровеньКомпетентности = СтрокаСотрудник.УровеньКомпетентности - 1;
		КонецЕсли;
		
		// Если в макете задан уровень и он отличается от рассчитанного - берём из макета
		Если УровеньКомпетентностиИзМакета <> 0 И УровеньКомпетентности <> УровеньКомпетентностиИзМакета Тогда
			УровеньКомпетентности = УровеньКомпетентностиИзМакета;
		КонецЕсли;	
		
		НоваяСтрокаСотрудник.УровеньКомпетентности				= УровеньКомпетентности;
		НоваяСтрокаСотрудник.ЭтоЗаместительРуководителяГруппы	= СтрокаСотрудник.ЭтоЗаместительРуководителяГруппы;   
		
	КонецЦикла;  
	// } #000000185362 [rarus kzn] shabal 2026-02-24 } 
	
КонецПроцедуры