Skip to content

Руководитель пользователя

// Получает элемент справочника "Пользователи" для руководителя указанного пользователя
// если в текущем подразделении не указан руководитель не указан, ищет в родителе
ПользовательСсылка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументПроцессаВход.КлючевойОбъектПроцесса, "<Пользователь>");
Если Не ЗначениеЗаполнено(ПользовательСсылка) Тогда
ВызватьИсключение "Не заполнен <Пользователь>";
КонецЕсли;
Подразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПользовательСсылка, "Подразделение");
РуководительФизЛицо = Неопределено;
Пока ЗначениеЗаполнено(Подразделение) Цикл
ДанныеПодразделения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подразделение, "ТекущийРуководитель, Родитель", Истина);
Если ЗначениеЗаполнено(ДанныеПодразделения.ТекущийРуководитель) Тогда
РуководительФизЛицо = ДанныеПодразделения.ТекущийРуководитель;
Прервать;
Иначе
Подразделение = ДанныеПодразделения.Родитель;
КонецЕсли;
КонецЦикла;
РуководительПользователь = Неопределено;
Если ЗначениеЗаполнено(РуководительФизЛицо) Тогда
РуководительПользователь = Справочники.Пользователи.НайтиПоРеквизиту("ФизическоеЛицо", РуководительФизЛицо);
Иначе
ВызватьИсключение "Не удалось подобрать руководителя пользователя " + ПользовательСсылка;
КонецЕсли;
Если Не ЗначениеЗаполнено(РуководительПользователь) Тогда
ВызватьИсключение "Не удалось подобрать руководителя пользователя " + ПользовательСсылка;
Иначе
ЗначениеПараметра = Новый Массив;
ЗначениеПараметра.Добавить(РуководительПользователь);
КонецЕсли;