XML Сериализация элементов прикладного объекта

andrey5565 286 5 7 10
	// Сериализация через XDTO;
	
	// 1. Создаем объект ЗаписьXML;
	ЗаписьXML = Новый ЗаписьXML;   
	
	// 2. Указываем путь к сохраненному файлу;
	ЗаписьXML.ОткрытьФайл(Объект.ПутьКФайлу + "\ВыгруженныеОбъекты.xml", "UTF-8");
	
	// 3. Записываем объявление типа: <?xml version="1.0" encoding="UTF-8"?>;
	ЗаписьXML.ЗаписатьОбъявлениеXML();
	
	// 4. Записываем название корневого элемента;
	ЗаписьXML.ЗаписатьНачалоЭлемента("РеализацияТоваров");  
	
	//для того чтобы пространства имен не объявлялись сериализатором в кажом элементе, пишем их в корневой элемент
	//они будут работать на все вложеные элементы
	//пространство имен по-умолчанию
	ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://v8.1c.ru/8.1/data/enterprise/current-config");
	//пространства имен остальные префиксы
	ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsd", "http://www.w3.org/2001/XMLSchema");
	ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
	
	// 5. Сериализуем именно объекты (ссылки сериализуются по другому), что "ДОСТУПНО", то и сериализуется;
	Для каждого ТекСтрока Из ТаблицаДокументов Цикл 
		 СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТекСтрока.Ссылка.ПолучитьОбъект());
	КонецЦикла; 
	
	// 6. Конец корневого элемента;
	ЗаписьXML.ЗаписатьКонецЭлемента();
	
	// 7. Обязательно закрываем запись;
	ЗаписьXML.Закрыть();
2

Комментарии

Baiji
#1, 02 мая 2023 11:21

Спасибо!
А как этот xml обратно загрузить? Это возможно?


andrey5565
#2, 06 мая 2023 22:18

(1) Baiji, да, конечно, можно десериализовать с помощью Объекта XDTO;

ФабрикаXDTO.ПрочитатьXML(<ЧтениеXML>, <Тип>), путь к файлу с данными XML уже указываем в объекте встроенного языка - ЧтениеXML;


См. также

Сериализация массива объектов в xml (файл)

Установить элемент отбора динамического списка

КодСериализацииОбъектаАдресации (БСП)

ТипОбъектаПоКодуСериализации (БСП)

Запуталась в Элементах и Объектах

ОбъектыМетаданныхСПредопределеннымиЭлементами (БСП)

ОбъектЯвляетсяГруппой (БСП)

Записать таблицу значений в XML

Функции преобразования ЗаписьJSON

Модератору