Чтение и запись данных в XML-документ средствами 1С

Система 1С:Предприятие 8.2 позволяет работать с XML-документами с помощью базовых объектов ЧтениеXML и ЗаписьXML. Объекты позволяют последовательно получать и записывать фрагменты данные в файл XML, тем самым документ не загружается в оперативную память полностью.

Рассмотрим пример записи данных в XML-документ с использованием объекта ЗаписьXML. Выгрузим номенклатуру в файл XML (листинг 1).

Листинг 1 — Пример записи XML-документа средствами встроенного языка 1С:Предприятие 8.2:

&НаКлиенте
Процедура ЗаписьДанных(Команда)
    ВыполнитьЗаписьДанных();    
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ВыполнитьЗаписьДанных()
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("d:\temp\tovar.xml");

    ЗаписьXML.ЗаписатьОбъявлениеXML();

    ЗаписьXML.ЗаписатьНачалоЭлемента("Корневой");

    // Записать атрибут элемента Корневой
    ЗаписьXML.ЗаписатьАтрибут("Справочник", "Номенклатура");

    ЗаписьXML.ЗаписатьКомментарий("Элементы справочника:");

    Выборка = Справочники.Номенклатура.Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа Тогда
            Продолжить;
        КонецЕсли;
        ЗаписьXML.ЗаписатьНачалоЭлемента("ЭлементСправочника");

            ЗаписьXML.ЗаписатьНачалоЭлемента("Код");
            ЗаписьXML.ЗаписатьТекст(Выборка.Код);
            ЗаписьXML.ЗаписатьКонецЭлемента();

            ЗаписьXML.ЗаписатьНачалоЭлемента("Наименование");
            ЗаписьXML.ЗаписатьТекст(Выборка.Наименование);
            ЗаписьXML.ЗаписатьКонецЭлемента();

            ЗаписьXML.ЗаписатьНачалоЭлемента("Цена");
            ЗаписьXML.ЗаписатьТекст(СокрЛП(Выборка.Цена));
            ЗаписьXML.ЗаписатьКонецЭлемента();            

        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;    

    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();
КонецПроцедуры

Процедура ЧтениеДанных() последовательно читает узлы из XML-документа (листинг 2). Тип узла определяется системным перечислением ТипУзлаXML .

Листинг 2 — чтение XML-документа:

&НаКлиенте
Процедура ЧтениеДанных(Команда)
    ФайлXML = Новый ЧтениеXML;
    ФайлXML.ОткрытьФайл("d:\temp\tovar.xml");

    Сообщение = Новый СообщениеПользователю();

    Пока ФайлXML.Прочитать() Цикл
        Если ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            Сообщение.Текст = ФайлXML.Имя;
            Сообщение.Сообщить();

            Пока ФайлXML.ПрочитатьАтрибут() Цикл
                Сообщение.Текст = "Атрибут: " + ФайлXML.Имя +
                                           " = " + ФайлXML.Значение;
                Сообщение.Сообщить();
            КонецЦикла;      
        КонецЕсли;    

        Если ФайлXML.ТипУзла = ТипУзлаXML.Текст Тогда
            Сообщение.Текст = ФайлXML.Значение;
            Сообщение.Сообщить();
        КонецЕсли;    

        Если ФайлXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
            Сообщение.Текст = "/" + ФайлXML.Имя;
            Сообщение.Сообщить();
        КонецЕсли;    
    КонецЦикла;    

    ФайлXML.Закрыть();
КонецПроцедуры
Запись опубликована в рубрике Программирование и сопровождение 1с. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Solve : *
13 + 12 =