Имя: Пароль:
1C
1С v8
Поиск элемента справочника по GUID через OLE
0 bvb
 
23.01.14
17:11
Сделал обработку OLE запускаемую из УТ и обращающуся к БП.
Нужно в OLE базе БП найти элемент справочника используя GUID.

Беру ГУИД элемента в базе базе источника
Строка(ЭлементСправочника.УникальныйИдентификатор()) - "0f79fb2f-ea11-11e2-b77d-ac162db2dc64"

Смотрю в OLE базе БП регистр "СоответствиеОбъектовДляОбмена" - там данному элементу справочника соотвествуют аж две записи :
со значением реквизита "Ссылка в другой ИБ" :
{"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,100:b77dac162db2dc6411e2f9dcb96a75f9}
{"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,100:b77dac162db2dc6411e31492f6ef848f}

И как мне эти GUIDы сопоставлять ?
1 GRAF_84
 
23.01.14
17:14
СсылкаОбъекта = Справочники[ТипОбъета].ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(ГУИД)));

СсылкаОбъекта2 = ЗначениеИзСтрокиВнутр(СсылкаВДругойИБ);
2 bvb
 
23.01.14
17:58
Т.е. нужно вызвать в базе OLE :
V8.Справочники[ТипОбъета].ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(ГУИД)))

А как запустить конструктор Новый УникальныйИдентификатор(СокрЛП(ГУИД)) в базе OLE ?
3 Михаил Козлов
 
23.01.14
18:20
стрGUID = Источник.String(докТС.УникальныйИдентификатор());
GUID = Приемник.NewObject("УникальныйИдентификатор", стрGUID);
докСсылка = Приемник.Документы[имяТипаДокумента].ПолучитьСсылку(GUID);
Если ЗначениеЗаполнено(докСсылка.Номер) Тогда
  докОб = докСсылка.ПолучитьОбъект();
Иначе    
  докОб = БД.Документы[имяТипаДокумента].СоздатьДокумент();
  докОб.УстановитьСсылкуНового(докСсылка);
КонецЕсли;
4 bvb
 
23.01.14
18:53
(3) Спасибо
Написал вот так :
ИмяСправочника = Ссылка.Метаданные().Имя;
    GUID    = Ссылка.УникальныйИдентификатор();
    
    GUID_OLE = V8.NewObject("УникальныйИдентификатор", Строка(GUID));
    СсылкаOLE   = V8.Справочники[ИмяСправочника].ПолучитьСсылку(V8.NewObject("УникальныйИдентификатор", Строка(GUID)));
            
        
    Возврат СсылкаOLE;
5 bvb
 
23.01.14
18:57
Работает но некоторые элемены не находит - т.е. видимо в регистре другой ГУИД. В частности организацию. Что бы это значило ?