Пользователь по идентификатору существует. Определяет наличие элемента в справочнике Пользователи
// Определяет наличие элемента в справочнике Пользователи
// или справочнике ВнешниеПользователи по уникальному идентификатору
// пользователя информационной.
// Функция используется для проверки наличия сопоставления пользователяИБ только
// с одним элементом справочников Пользователи и ВнешниеПользователи.
//
// Параметры:
// УникальныйИдентификатор - идентификатор пользователя ИБ.
//
// СсылкаНаТекущего - СправочникСсылка.Пользователи,
// СправочникСсылка.ВнешниеПользователи - исключить
// указанную ссылку из поиска.
// Неопределено - искать среди всех элементов справочников.
//
// НайденныйПользователь (Возвращаемое значение):
// Неопределено - пользователь не существует.
// СправочникСсылка.Пользователи,
// СправочникСсылка.ВнешниеПользователи, если найден.
//
// ИдентификаторПользователяСервиса - Булево.
// Ложь - проверять ИдентификаторПользователяИБ.
// Истина - проверять ИдентификаторПользователяСервиса.
//
// Возвращаемое значение:
// Булево.
//
Функция ПользовательПоИдентификаторуСуществует(УникальныйИдентификатор,
СсылкаНаТекущего = Неопределено,
НайденныйПользователь = Неопределено,
ИдентификаторПользователяСервиса = Ложь) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СсылкаНаТекущего", СсылкаНаТекущего);
Запрос.УстановитьПараметр("УникальныйИдентификатор", УникальныйИдентификатор);
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Ссылка КАК Пользователь
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.ИдентификаторПользователяИБ = &УникальныйИдентификатор
| И Пользователи.Ссылка <> &СсылкаНаТекущего
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВнешниеПользователи.Ссылка
|ИЗ
| Справочник.ВнешниеПользователи КАК ВнешниеПользователи
|ГДЕ
| ВнешниеПользователи.ИдентификаторПользователяИБ = &УникальныйИдентификатор
| И ВнешниеПользователи.Ссылка <> &СсылкаНаТекущего";
Результат = Ложь;
НайденныйПользователь = Неопределено;
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
НайденныйПользователь = Выборка.Пользователь;
Результат = Истина;
Пользователи.НайтиНеоднозначныхПользователейИБ(Неопределено, УникальныйИдентификатор);
КонецЕсли;
Возврат Результат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
НайтиНеоднозначныхПользователейИБ (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)