Сериализация метаданных в XML
☑
0
Benn
18.07.17
✎
12:03
Добрый день. Есть необходимость сериализовать объект в XML файл с последующим созданием из XMЛ БЕЗ описания схемы.
1
DexterMorgan
18.07.17
✎
12:08
СериализаторXDTO (XDTOSerializer)
Свойства:
Фабрика (Factory)
Методы:
XMLЗначение (XMLValue)
XMLСтрока (XMLString)
XMLТип (XMLType)
XMLТипЗнч (XMLTypeOf)
ВозможностьЧтенияXML (CanReadXML)
ЗаписатьXDTO (WriteXDTO)
ЗаписатьXML (WriteXML)
ИзXMLТипа (FromXMLType)
ПолучитьXMLТип (GetXMLType)
ПрочитатьXDTO (ReadXDTO)
ПрочитатьXML (ReadXML)
Конструкторы:
На основании XDTO
Описание:
Сериализатор значений платформы 1С:Предприятие 8 в XML на основе XDTO.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
См. также:
2
Benn
18.07.17
✎
12:09
Например при передачи в сериализатор ссылки на справочник номенклатуры в XML файле я получу теги всех своих реквизитов с данными в виде дерева.
3
Рэйв
18.07.17
✎
12:09
//----------Сериализация
Функция XML(Данные)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Данные);
Возврат ЗаписьXML.Закрыть();
КонецФункции
//------Десериализация
Функция ДанныеИзXML(Стр)
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.УстановитьСтроку(Стр);
Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
КонецФункции
4
Рэйв
18.07.17
✎
12:14
Еще можно так:
//------
// Выгрузить в файл 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
Benn
18.07.17
✎
12:21
(4) Все, спасибо. Ответ на мой вопрос был в "ПолучитьОбъект()". Я ссылку передавал в сериализатор - хмл записывался с описанием ссылки. При передачи объекта - полная структура объекта.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.