Загрузка данных
&НаСервере
Процедура ЗаполнитьДанныеСотрудников()
// [+] #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 }
КонецПроцедуры