Возвращает ссылку на найденный справочник или документ или Неопределено, если объекта нет.
Параметры
ИД — строковое представления уникального идентификатора
Тип — наименование вида справочника или документа. Благо их наименования не пересекаются.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Функция ПолучитьСсылкуПоИД(ИД, Тип = Неопределено) Если ИД = "" и Тип <> Неопределено Тогда // Тип известен, элемент явно пустой, значит нужно вернуть пустую ссылку спр = Метаданные.Справочники.Найти(Тип); Если спр <> Неопределено Тогда Возврат Справочники[Тип].ПустаяСсылка(); КонецЕсли; док = Метаданные.Документы.Найти(Тип); Если док <> Неопределено Тогда Возврат Документы[Тип].ПустаяСсылка(); КонецЕсли; Возврат Неопределено КонецЕсли; Попытка УИД = Новый УникальныйИдентификатор(ИД); Исключение Возврат Неопределено КонецПопытки; // Если тип известен, то ищем только в одной таблице Если Тип <> Неопределено Тогда спр = Метаданные.Справочники.Найти(Тип); Если спр <> Неопределено Тогда Ссылка = Справочники[Тип].ПолучитьСсылку(УИД); Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() <> Неопределено Тогда Возврат Ссылка КонецЕсли; Возврат Неопределено КонецЕсли; док = Метаданные.Документы.Найти(Тип); Если док <> Неопределено Тогда Ссылка = Документы[Тип].ПолучитьСсылку(УИД); Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() <> Неопределено Тогда Возврат Ссылка КонецЕсли; КонецЕсли; Возврат Неопределено КонецЕсли; // Если тип неизвестен, то перебираем все справочники и документы. // Это долго. Поэтому тип очень хочется получить. Для Каждого спр из Метаданные.Справочники Цикл Ссылка = Справочники[спр.Имя].ПолучитьСсылку(УИД); Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда Возврат Ссылка КонецЕсли; КонецЦикла; Для Каждого док из Метаданные.Документы Цикл Ссылка = Документы[док.Имя].ПолучитьСсылку(УИД); Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда Возврат Ссылка КонецЕсли; КонецЦикла; Возврат Неопределено КонецФункции |
Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.