Задайте вопрос по 1с специалисту

Нажимая на кнопку, вы даете согласие на обработку своих персональных данных.
Политика конфиденциальности

Загрузка XML в таблицу значений 1С

В 1C загрузка XML в таблицу может происходить двумя способами - при помощи специальной обработки и при помощи более поздней внутренней функции, которая доступна в восьмой версии программы. Каждый способ имеет свои недостатки и преимущества.

Использование DOM для чтения XML

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

  • мДОМ=новый ПостроительDOM;

  • чтение=Новый ЧтениеXML;

  • чтение.ОткрытьФайл(сокрЛП(вхИмяФайла));

  • мДокументДОМ=мДОМ.Прочитать(чтение);

  • чтение.Закрыть().

В результате работы кода пользователь получает дерево, которое необходимо обойти для формирования Таблицы значений. Последующую обработку узлов можно производить как при помощи Построителя, так и при помощи поиска. Это простой способ, но достаточно медленный, поэтому он не подходит для файлов больше 40-50Мб.

Встроенный функционал для чтения XML

Есть куда более быстрый, хотя и трудоемкий способ для того, чтобы загрузить данные XML. Он появился как решение на возросший объем файлов для обработки в 1С. Начиная с восьмой версии в программе доступна функция "Значение из файла" (механизм написан на языке программирования C#). Для работы нужно указать имя файла XML - путь к нему, имя узлового элемента и файл для записи полученной таблицы значений. Дополнительно можно прописать субпуть, который укажет, в какой именно ветке следует искать узловые элементы.

Для того же, чтобы прочитать файл из 1С при помощи объекта "Чтение XML" (в Синтакс-помощнике, секция "Содержание" => "Общие объекты" => "XML"), пригодится следующий код:

  • чтение=новый ЧтениеXML;

  • чтение.ОткрытьФайл(сокрЛП(вхИмяФайла));

  • пока чтение.Прочитать() цикл

  • если Чтение.ТипУзла=ТипУзлаXML.НачалоЭлемента тогда

  • пока Чтение.ПрочитатьАтрибут() цикл

  • конеццикла;

  • иначеесли Чтение.ТипУзла=ТипУзлаXML.Текст тогда

  • иначеесли Чтение.ТипУзла=ТипУзлаXML.КонецЭлемента тогдаконецесли;

  • конеццикла.

Если у вас остались вопросы по работе с данными в формате XML в различных конфигурациях 1С, обращайтесь за консультацией и технической помощью в компанию «Сетби».

ответим на все вопросы по работе с 1с

Нажимая на кнопку, вы даете согласие на обработку своих персональных данных.
Политика конфиденциальности

Рекомендуем также посмотреть:

Официальный статус партнера


Подпишись на наши акции и скидки!

Нажимая на кнопку, вы даете согласие на обработку своих персональных данных.
Политика конфиденциальности
8 (495) 374-59-14

Copyright © Все права принадлежат ГК Авангард Сервис, и защищены 2005-2017