В документах 1С УНФ часто в качестве ответственного указывается сотрудник, а не пользователь. Понадобилось получить пользователя сотрудника. Была создана нижеприведенная функция.
НаСервере
Функция ПолучитьПользователяПоСотруднику(СотрудникСсылка) Экспорт // Получаем пользователя по ответственному
Запрос = Новый Запрос;
//Установка значений параметров
Запрос.УстановитьПараметр("Сотрудник", СотрудникСсылка);
Запрос.Текст = "ВЫБРАТЬ
| СотрудникиПользователя.Сотрудник КАК Сотрудник,
| СотрудникиПользователя.Пользователь КАК Пользователь,
| СотрудникиПользователя.Пользователь.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ
|ИЗ
| РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя
|ГДЕ
| СотрудникиПользователя.Сотрудник = &Сотрудник
| И СотрудникиПользователя.Пользователь.Недействителен = ЛОЖЬ";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
ИдентификаторПользователяИБ = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); // Пустой идентификатор
СтруктураПараметрыПользователя = Новый Структура("Пользователь, ИдентификаторПользователяИБ", Справочники.Пользователи.ПустаяСсылка(), ИдентификаторПользователяИБ);
Возврат СтруктураПараметрыПользователя;
Иначе
Выборка = Результат.Выбрать();
Выборка.Следующий();
СтруктураПараметрыПользователя = Новый Структура("Пользователь, ИдентификаторПользователяИБ", Выборка.Пользователь, Выборка.ИдентификаторПользователяИБ);
Возврат СтруктураПараметрыПользователя;
КонецЕсли;
КонецФункции