---
title: Руководитель пользователя
slug: типовые-erp-согласования-ух/руководитель-пользователя
---

```bsl
// Получает элемент справочника "Пользователи" для руководителя указанного пользователя
// если в текущем подразделении не указан руководитель не указан, ищет в родителе

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

Если Не ЗначениеЗаполнено(ПользовательСсылка) Тогда
    ВызватьИсключение "Не заполнен <Пользователь>";
КонецЕсли;

Подразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПользовательСсылка, "Подразделение");

РуководительФизЛицо = Неопределено;

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

РуководительПользователь = Неопределено;

Если ЗначениеЗаполнено(РуководительФизЛицо) Тогда
    
    РуководительПользователь = Справочники.Пользователи.НайтиПоРеквизиту("ФизическоеЛицо", РуководительФизЛицо);
    
Иначе
    ВызватьИсключение "Не удалось подобрать руководителя пользователя " + ПользовательСсылка;
КонецЕсли;

Если Не ЗначениеЗаполнено(РуководительПользователь) Тогда
    ВызватьИсключение "Не удалось подобрать руководителя пользователя " + ПользовательСсылка;
Иначе
    ЗначениеПараметра = Новый Массив;
    ЗначениеПараметра.Добавить(РуководительПользователь);
КонецЕсли;
```