Имя: Пароль:
1C
1С v8
Как получить УИД Справочника через ком
0 ZaprosMan
 
24.05.13
12:17
Хочу сравнивать справочники из разных баз, после обмена данными.
Написал обработку, хочу искать по УИДам.
Код:
///////////////////////////
Процедура ДополнитьТЗ(ТЗ,БазаCOM=Неопределено)
   КС = Новый КвалификаторыСтроки(255);
   Массив = Новый Массив;
   Массив.Добавить(Тип("Строка"));
   ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
   //
   Если ТЗ.Колонки.Найти("ID") = Неопределено Тогда
       Колонка = ТЗ.Колонки.Добавить("ID",ОписаниеТиповС);
   КонецЕсли;
   Если ТЗ.Колонки.Найти("НомерСтроки") = Неопределено Тогда
       Колонка = ТЗ.Колонки.Добавить("НомерСтроки",ОписаниеТиповС);
   КонецЕсли;
   Сч = 1;
   Для Каждого Строка Из ТЗ Цикл
       Если БазаCOM=Неопределено Тогда
           Справочник = Справочники[ОбъектМетаданных].НайтиПоКоду(Строка.Код);    
       Иначе
           Справочник = БазаCOM.Справочники[ОбъектМетаданных].НайтиПоКоду(Строка.Код);
       КонецЕсли;
       Строка.ID = Справочник.УникальныйИдентификатор();
       Строка.НомерСтроки = Строка(Сч);

       Сч = Сч+1;
   КонецЦикла;
КонецПроцедуры

///////////////////////////

Справочник.УникальныйИдентификатор() для ком объекта дает значение "COMОбъект" с типом Строка.

Как можно получить уид справочника по COM?
Заранее благодарю.
1 salvator
 
24.05.13
12:20
Строка.ID = Строка(Справочник.УникальныйИдентификатор());
2 ZaprosMan
 
24.05.13
12:22
Строка(Справочник.УникальныйИдентификатор()) дает значение "COMОбъект".
3 dk
 
24.05.13
12:25
а что есть Справочник?
4 ZaprosMan
 
24.05.13
12:29
COMОбъект внешней базы.
5 Serginio1
 
24.05.13
12:30
УИД=Сервер.XMLСтрока(Сервер.NewObject("УникальныйИдентификатор","22151195-0def-11e2-b65b-c86000c70663"));
6 zladenuw
 
24.05.13
12:30
ОбъектПолучателяСпр = ТекCOMОбъект.Справочники["Номенклатура"].ПолучитьСсылку(ВернутьУИД(ОбъектОтправителя));

Функция ВернутьУИД(ОбъектОтправителя)    
   Возврат ТекCOMОбъект.Newobject("УникальныйИдентификатор",СокрЛП(ОбъектОтправителя.UUID()));
КонецФункции // ВернутьУИД
7 dk
 
24.05.13
12:31
(4) COMСоединение.String(Справочник.УникальныйИдентификатор());
8 ZaprosMan
 
24.05.13
12:34
Всем спасибо!
Особенно bk.
Решение:
БазаCOM.String(Справочник.УникальныйИдентификатор());
2 + 2 = 3.9999999999999999999999999999999...