|
Выгрузка табличной части элемента справочника в XML | ☑ | ||
---|---|---|---|---|
0
perpleks
26.11.15
✎
14:56
|
Хочу попробовать сделать выгрузку в базу на планшете (мобильная платформа), сформировав на отправляющей стороне файл обмена, совпадающий со структурой принимающей базы. Для этого из приемника была экспортирована\импортирована в отправитель XML-схема в виде XDTO-пакета. Простые справочники выгружаются. Сейчас пытаюсь выгрузить элемент справочника с табличной частью:
Читаю так:
Табличная часть таким образом не читается, поскольку получается такой XML:
А нужен, я думаю, такой:
Вопрос: как делать запись XML так, чтобы получалась структура как во втором варианте? Я уже отчаялся разобраться сам :( |
|||
1
Живой Ископаемый
26.11.15
✎
15:10
|
Можно в ХМЛ строке слово КонтактнаяИнформация заменить на ROW.
А слов </Description> на </Description> <КонтактнаяИнформация> а слово </CatalogObject.Контрагенты> на </КонтактнаяИнформация> </CatalogObject.Контрагенты> |
|||
2
perpleks
26.11.15
✎
15:17
|
(1) В смысле, перетряхнуть весь XML целиком перед отправкой и поменять, что не нравится? Но тогда уж лучше изначально формировать его "врукопашную", безо всяких XDTO. Очень некрасивый костыль будет :(
|
|||
3
Записьдампа
26.11.15
✎
19:06
|
(0) Не нужен там ROW, если честно экспортировал/импортировал. У тебя в выходном XML указание пространства имен потеряно, и типизация не работает.
|
|||
4
Рэйв
26.11.15
✎
19:11
|
//-------
XML i Как из одной базы перенести документ в другую базу? // Выгрузить в файл xml. ЗаписьXML=Новый ЗаписьXML(); ЗаписьXML.ОткрытьФайл("c:\doc.xml"); ЗаписьXML.ЗаписатьНачалоЭлемента("Root"); // Получить объект по ссылке. ВыгружаемыйОбъект=Документ.ПолучитьОбъект(); // С помощью средств сериализации записать объект в файл. ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); ЧтениеXML=Новый ЧтениеXML(); ЧтениеXML.ОткрытьФайл("c:\doc.xml"); // Текущим становится элемент Root. ЧтениеXML.Прочитать(); // Текущим становится элемент с документом. ЧтениеXML.Прочитать(); // Проверить сможет ли с данным значением "справиться" // система сериализации в данной базе. Если ВозможностьЧтенияXML(ЧтениеXML) Тогда // Получить ДокументОбъект.РеализацияТоваровУслуг ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML); ЗагружаемыйОбъект.Записать(); КонецЕсли; ЧтениеXML.Закрыть(); |
|||
5
Рэйв
26.11.15
✎
19:11
|
(С)
|
|||
6
Рэйв
26.11.15
✎
19:11
|
Это пример
|
|||
7
Рэйв
26.11.15
✎
19:11
|
как херней не заниматься:-)
|
|||
8
Записьдампа
26.11.15
✎
19:15
|
(4) Мимо тазика, к сожалению.
У него две разные конфигурации, соответственно разные фабрики XDTO с разными наборами пакетов/типов. При помощи одной из них он готовит xml для второй. |
|||
9
Рэйв
26.11.15
✎
19:17
|
(8)Это ты не в тазик.
xml совершенно пофигу что в него запишут. |
|||
10
Рэйв
26.11.15
✎
19:17
|
Если нормально подготовит все прочитается.
|
|||
11
Записьдампа
26.11.15
✎
19:47
|
(9)Концепция изменилась - пациент обгадился...
Вот для того чтобы подготовить xml как надо, ему и требуется попасть в квалифицированный тип - с указанием пространства имён. Кстати, напомни, пожалуйста, какое оно у объекта справочника конфигурации? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |