diff --git a/src/content/docs/knowledge-base/Типовые/ERP/Согласования УХ/Руководитель пользователя.md b/src/content/docs/knowledge-base/Типовые/ERP/Согласования УХ/Руководитель пользователя.md new file mode 100644 index 0000000..decb362 --- /dev/null +++ b/src/content/docs/knowledge-base/Типовые/ERP/Согласования УХ/Руководитель пользователя.md @@ -0,0 +1,49 @@ +--- +title: Руководитель пользователя +slug: типовые-erp-согласования-ух/руководитель-пользователя +--- + +```bsl +// Получает элемент справочника "Пользователи" для руководителя указанного пользователя +// если в текущем подразделении не указан руководитель не указан, ищет в родителе + +ПользовательСсылка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументПроцессаВход.КлючевойОбъектПроцесса, "<Пользователь>"); + +Если Не ЗначениеЗаполнено(ПользовательСсылка) Тогда + ВызватьИсключение "Не заполнен <Пользователь>"; +КонецЕсли; + +Подразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПользовательСсылка, "Подразделение"); + +РуководительФизЛицо = Неопределено; + +Пока ЗначениеЗаполнено(Подразделение) Цикл + + ДанныеПодразделения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подразделение, "ТекущийРуководитель, Родитель", Истина); + + Если ЗначениеЗаполнено(ДанныеПодразделения.ТекущийРуководитель) Тогда + РуководительФизЛицо = ДанныеПодразделения.ТекущийРуководитель; + Прервать; + Иначе + Подразделение = ДанныеПодразделения.Родитель; + КонецЕсли; + +КонецЦикла; + +РуководительПользователь = Неопределено; + +Если ЗначениеЗаполнено(РуководительФизЛицо) Тогда + + РуководительПользователь = Справочники.Пользователи.НайтиПоРеквизиту("ФизическоеЛицо", РуководительФизЛицо); + +Иначе + ВызватьИсключение "Не удалось подобрать руководителя пользователя " + ПользовательСсылка; +КонецЕсли; + +Если Не ЗначениеЗаполнено(РуководительПользователь) Тогда + ВызватьИсключение "Не удалось подобрать руководителя пользователя " + ПользовательСсылка; +Иначе + ЗначениеПараметра = Новый Массив; + ЗначениеПараметра.Добавить(РуководительПользователь); +КонецЕсли; +``` \ No newline at end of file