Обработка содержит примеры работы с XML
Вот пример, как быстро прочитать файл, не зная структуры, потом в цикле выбрать все данные.
Чтение.УстановитьСтроку(Объект.Результат)
Используется для чтения данных из памяти (не из файла)
Часто применяется в веб сервисах.
&НаКлиенте
Процедура ЗаписатьX(Команда)
ЗаписатьXMLНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьX(Команда)
ПрочитатьXMLНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПрочитатьXMLНаСервере()
Объект.ДокСсылка = ИзXML(Объект.Результат);
КонецПроцедуры
&НаСервере
Процедура ЗаписатьXMLНаСервере()
Если ТипЗнч(объект.ДокСсылка) = Тип("СправочникСсылка.Номенклатура") Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Товары.Ссылка
|ИЗ
| Справочник.Товары КАК Товары
|ГДЕ
| Товары.Ссылка В ИЕРАРХИИ(&Ссылка)";
Запрос.УстановитьПараметр("Ссылка", объект.ДокСсылка);
Результат = Запрос.Выполнить().Выгрузить();
Объект.Результат = СписокВXML(Результат);
Иначе
Объект.Результат = ВXML(объект.ДокСсылка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ВXML(ДокументСсылка)
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, ДокументСсылка.ПолучитьОбъект());
Возврат ЗаписьXML.Закрыть();
КонецФункции
&НаСервере
Функция ИзXML(Стр)
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Стр);
ДО = ПрочитатьXML(ЧтениеXML);
ДО.ОбменДанными.Загрузка = Истина;
ДО.Записать(РежимЗаписиДокумента.Запись);
Возврат ДО.ССылка;
КонецФункции
&НаСервере
Функция СписокВXML(ВхТЗ)
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, ПланыОбмена.Мобильные.НайтиПоКоду("001"));
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data");
ТипДанныхУдаления = Тип("УдалениеОбъекта");
Для Каждого Стр Из ВхТЗ Цикл
ЗаписатьXML(ЗаписьXML, Стр.Ссылка.ПолучитьОбъект());
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
Возврат ЗаписьXML.Закрыть();
КонецФункции
&НаСервере
Функция ТЗВXML()
КонецФункции
&НаКлиенте
Процедура ЗаписатьДОМ(Команда)
ЗаписатьДОМНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаписатьДОМНаСервере()
//Запись = Новый ЗаписьXML;
//Запись.ОткрытьФайл("e:\bases\70\dom.xml");
//ЗаписьДом = Новый ЗаписьDOM;
//Дом = Новый ДокументDOM("www.zmgmsc.ru/testuri", "Корневой");
//Корневой = Дом.ЭлементДокумента;
//Элемент = Дом.СоздатьЭлемент("Имя");
//Элемент.ТекстовоеСодержимое = "Текст";
//Элемент.УстановитьАтрибут("Свойство", "Значение");
//Корневой.ДобавитьДочерний(Элемент);
//ЗаписьДом.Записать(Дом, Запись);
//Запись.Закрыть();
Чтение = Новый ЧтениеXML;
//Чтение.ОткрытьФайл("e:\bases\70\dom.xml");
Чтение.УстановитьСтроку(Объект.Результат);
ПостроительДом = Новый ПостроительDOM;
ДокументДом = ПостроительДом.Прочитать(Чтение);
Корневой = ДокументДом.ЭлементДокумента;
Дочерние = Корневой.ДочерниеУзлы;
Для Каждого Стр Из Дочерние Цикл
Сообщить(Стр.ИмяЭлемента + " " + Стр.ТекстовоеСодержимое);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СериализацияXDTO(Команда)
СериализацияXDTOНаСервере();
КонецПроцедуры
&НаСервере
Процедура СериализацияXDTOНаСервере()
ТекОБъект = Объект.ДокСсылка.ПолучитьОбъект();
ТекСерХДТО = Новый СериализаторXDTO(ФабрикаXDTO);
ЗаписьXML = Новый ЗаписьXML;
//Запись.ОткрытьФайл("e:\bases\70\dom.xml");
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
//ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
//ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data");
ТекСерХДТО.ЗаписатьXML(ЗаписьXML, ТекОБъект, НазначениеТипаXML.Явное, ФормаXML.Элемент);
Объект.Результат = ЗаписьXML.Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузкаСериализаторXDTO(Команда)
ЗагрузкаСериализаторXDTOНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗагрузкаСериализаторXDTOНаСервере()
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(Объект.Результат);
ТекСерХДТО = Новый СериализаторXDTO(ФабрикаXDTO);
ТекОБъект = ТекСерХДТО.ПрочитатьXML(Чтение);
ТекОБъект.Записать();
Объект.ДокСсылка = ТекОБъект.Ссылка;
КонецПроцедуры