Имя: Пароль:
1C
1С v8
Перенос ГУИД из одной базы в другую по COM
0 KFIZ
 
19.08.16
17:55
Из одной базы в другую нужно перенести справочник с сохранением уникального идентификатора, используя выборку в COM-соединении. Код ниже успешно переносит справочник, но уникальный идентификатор не переносится. Что я делаю не так?

Выборка = Справочники.Номенклатура.Выбрать();
    Пока Выборка.Следующий() Цикл                                    
    spr_COM = Подключение.Справочники.Номенклатура.СоздатьЭлемент();
    ГУИД = XMLString(Выборка.Ссылка.УникальныйИдентификатор());
    Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(ГУИД)));
    spr_COM.Наименование =  Выборка.Наименование ;
    spr_COM.Цена = Выборка.Цена ;
    spr_COM.Записать();

Уровень знаний - низкий, код нужен для процесса обучения.
1 Mauser
 
19.08.16
17:57
ПолучитьСсылку - получает ссылку
УстановитьСсылкуНового - назначает указанную ссылку объекту
2 lodger
 
19.08.16
18:12
(1) истину глаголет. (0) полистай СП, там есть все объекты, методы и свойства, которые тебе понадобятся для обучения.
3 ghostishe
 
19.08.16
18:51
(0)
spr_COM = Подключение.Справочники.Номенклатура.СоздатьЭлемент();
ГУИДСтрока = XMLString(Выборка.Ссылка.УникальныйИдентификатор());

// создаем уникальный идентификатор в ком базе.
ГУИД_КОМ = Подключение.NewObject("УникальныйИдентификатор", ГУИДСтрока);
// создаем ссылку в ком базе по созданному идентификатору
СсылкаГУИДА_КОМ = Подключение.Справочники.Номенклатура.ПолучитьСсылку(ГУИД_КОМ);

// то самое место, где присваивается гуид
spr_COM.УстановитьСсылкуНового(СсылкаГУИДА_КОМ);


    spr_COM.Наименование =  Выборка.Наименование ;
    spr_COM.Цена = Выборка.Цена ;
    spr_COM.Записать();

// всё. надеюсь, не очепятался нигде.
4 KFIZ
 
19.08.16
19:10
(3) Премного благодарен, теперь заработало. УстановитьСсылкуНового не работало с spr_COM без использования NewObject.
5 ghostishe
 
19.08.16
19:36
(4) На здоровье. И хороших выходных.