Имя: Пароль:
1C
1С v8
v8: Хранилище значения через V82.ComConnector
0 Annochka
 
07.11.13
21:08
Есть задача перенести документ из одной базы в идентичную другую. Перенос через V82.ComConnector. В документе есть табличная часть, в которой одним из реквизитов является ХранилищеЗначения, в котором хранится структура из 10 ключей. Как перенести этот реквизит в другую базу?
1 pumbaEO
 
07.11.13
21:11
base64
2 Annochka
 
07.11.13
21:13
Док1 = Соединение.Документы.Накладная;
Док = Док1.СоздатьДокумент();

НовУслуга = Док.Услуги.Добавить();
изХранилища = струслуги.Договор.Получить();
УдаленноеХранилище= Соединение.NewObject("ХранилищеЗначения",изХранилища);
НовУслуга.Договор= УдаленноеХранилище;
На такой текст ругается
Произошла исключительная ситуация (1C:Enterprise 8.2.18.104): Переданное значение не может быть помещено в ХранилищеЗначения, поскольку не сериализуется или содержит вложенный несериализуемый элемент
3 Annochka
 
07.11.13
21:44
Сделала так, если кому то будет интересно:
СтрокаXML = XMLСтрока(стрУслуги.Договор);
Хранилище = XMLЗначение(Тип("ХранилищеЗначения"), СтрокаXML);
НовХран = ЗначениеВСтрокуВнутр(Хранилище);
НовУслуга.Договор = Соединение.NewObject("ХранилищеЗначения", НовХран);

На той стороне при открытии дока проверка:
Если ТипЗнч(стрУслуги.Договор.Получить())=Тип("Строка") ТОгда
изХранилища = ЗначениеИзСтрокиВнутр(изХранилища).получить();
КонецЕсли;
// ИзХранилища - это уже структура и с ней работаем как обычно
4 Annochka
 
07.11.13
21:45
ошиблась, надо так
изХранилища = ЗначениеИзСтрокиВнутр(стрУслуги.Договор.Получить()).получить();
Ошибка? Это не ошибка, это системная функция.