|
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
|
ошиблась, надо так
изХранилища = ЗначениеИзСтрокиВнутр(стрУслуги.Договор.Получить()).получить();
|
|