Каталог решений - Дозагрузка данных в файлы .xml

Дозагрузка данных в файлы .xml

Дозагрузка данных в файлы .xml

В наличии

Искал, но не нашел /(может и не умею искать) краткое описание дозагрузки данных в .xml файл, ну и решил сделать из этого первую публикацию.

Категория:

Описание

Не так давно столкнулся с ситуацией, когда надо было дозаписывать записи в документ .xml.

Сам документ ничего особого с себя не представляет, примерно такой вот структуры:

Как видим Запись XML  и несколько атрибутов, но не об этом….

Как же записать следующие записи такого типа?!

Некоторые решения ведут за собой чтение документа, перенос данных в ТЗ, к нему крепим следующую запись и потом опять создаем документ и записываем его….но…не хотел так делать и все)

Потому нашел вариант, который мне нравится и быстро работает — все через ПостроительDOM.

Не спорю, на большие количества записей он будет работать медленней, но в данной ситуации как раз по мне!

Что же нам нужно? Тут все просто, вначале прочитаем файл .xml:

  ЧтениеXML = Новый ЧтениеXML;
  ЧтениеXML.ОткрытьФайл(Путь + ИмяФайла);
  Построитель = Новый ПостроительDOM;
  Документ = Построитель.Прочитать(ЧтениеXML);
  ЧтениеXML.Закрыть();

Далее найдем нужный корень структуры .xml файла в который будет дозаписывать наши строки (к) из какого то источника, будь то ТЗ, структура и т.п. (в моем случае это будет «СтрокаСчета»  в «ОстаткиБанковскиеСчета») и проведем запись новосозданной строки(к):           

  ТаблицаИсточник = Запрос.Выполнить().Выгрузить();
  
       Корневой = Документ.ЭлементДокумента;
  
          Для каждого Строка Из ТаблицаИсточник Цикл
  
              Элемент = Документ.СоздатьЭлемент("СтрокаСчета");
              Элемент.УстановитьАтрибут("Дата", Строка(ТекущаяДата()));
              Элемент.УстановитьАтрибут("НаименованиеКомпании", Строка. Компания);
              Элемент.УстановитьАтрибут("ЕРДПОУ", Строка.КодПоЕДРПОУ);
              Элемент.УстановитьАтрибут("НазваниеБанка", Строка.Банк);
              Элемент.УстановитьАтрибут("МФО", Строка.Банк.Код);
              Элемент.УстановитьАтрибут("IBAN", Строка.НомерСчета);
              Элемент.УстановитьАтрибут("Валюта", Строка.Валюта);
              Элемент.УстановитьАтрибут("Сумма", Строка.СуммаОстаток);
              Корневой.ДобавитьДочерний(Элемент);
  
          КонецЦикла;

Ну и последний штрих — это записать уже отредактированный нами документ кодом типа:

  ЗаписьXML = Новый ЗаписьXML;
  ЗаписьXML.ОткрытьФайл(Путь + ИмяФайла);
  ЗаписьDOM = Новый ЗаписьDOM;
  ЗаписьDOM.Записать(Документ, ЗаписьXML);
  ЗаписьXML.Закрыть();

После получаем наш файл будет выглядеть так:

Надеюсь, кому то помогло.

Тестирование проводил на упр. формах УНФ выше 1.6.10.

has been added to your cart:
Оформление заказа