Получение ссылки по GUIDу в COMConnector (1Cv8)

Материал из КинтВики
Перейти к: навигация, поиск


Источник: http://kb.mista.ru/article.php?id=649&

Много вопросов вызывает процедура получения ссылки на COMобъект по строковому представлению уникального идентификатора объекта. Приведен метод получения такой ссылки и строкового образа объекта в варианте "из 1С8 смотрим в 1С8"

Ключевые слова: COMСоединение, УникальныйИдентификатор, Ссылка


Известно:

  • ИмяДокумента (Тип Строка)
  • УникальныйИдентификатор искомого документа в базе-источнике (тип Строка)
  • COMСоединение установлено.

<source lang=1c>

   МД=ВнешняяБаза.XMLTypeOf(ВнешняяБаза.Документы[ИмяДокумента].ПустаяСсылка());
   Попытка
       тСсылка=ВнешняяБаза.XMLValue(ВнешняяБаза.FromXMLType(МД),ЭтотУникальныйИдентификатор);
   Исключение
       Сообщить("COM: "+ОписаниеОшибки());
       возврат;
   КонецПопытки;    
   тОбъект=тСсылка.ПолучитьОбъект();
   ЗаписьXML=ВнешняяБаза.NewObject("ЗаписьXML");
   ЗаписьXML.УстановитьСтроку();
   ВнешняяБаза.WriteXML(ЗаписьXML,тОбъект);
   тСтрXML=ЗаписьXML.Закрыть();

</source>


Для перечислений:

  • ИмяПеречисления (Тип Строка)
  • ИмяЗначенияПеречисления (Тип Строка)
  • COMСоединение установлено.

<source lang=1c>

   МД=ВнешняяБаза.XMLTypeOf(ВнешняяБаза.Перечисления[ИмяПеречисления].ПустаяСсылка());
   Попытка
       тСсылка=ВнешняяБаза.XMLValue(ВнешняяБаза.FromXMLType(МД),ИмяЗначенияПеречисления);
   Исключение
       Сообщить("COM: "+ОписаниеОшибки());
       возврат;
   КонецПопытки;    

</source>


в переменной тСсылка - лежит Ссылка на объект (тип COMОбъект)