Соответствие объектов информационных баз¶
Поиск объекта через соответствие по идентификатору в РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов¶
&НаСервереБезКонтекста
Функция НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, УзелКорреспондента, ТипЗначенияОбъектаИБ)
Если Не ЗначениеЗаполнено(УзелКорреспондента) Тогда
Возврат Неопределено;
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| РПИ.Ссылка КАК Ссылка
|ИЗ
| РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК РПИ
|ГДЕ
| РПИ.УзелИнформационнойБазы = &УзелИнформационнойБазы
| И РПИ.Идентификатор = &Идентификатор");
Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента);
Запрос.УстановитьПараметр("Идентификатор", УИДОбъектаXDTO);
НайденнаяСсылка = Неопределено;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ТипЗнч(Выборка.Ссылка) <> ТипЗначенияОбъектаИБ Тогда
Продолжить;
КонецЕсли;
НайденнаяСсылка = Выборка.Ссылка;
Прервать;
КонецЦикла;
Возврат НайденнаяСсылка;
КонецФункции
&НаСервере
Функция ПолучитьНоменклатуруПоGUID(СтрокаGUID)
Рез = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID));
Если ПустаяСтрока(Рез.ВерсияДанных) Тогда
Рез = НайтиСсылкуПоПубличномуИдентификатору(СтрокаGUID, Объект.УзелКорреспондента, Тип("СправочникСсылка.Номенклатура"));
КонецЕсли;
Возврат Рез;
КонецФункции