1с запись чтение xml

Рассмотрим возможности 1С 8.3 работы с XML.

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

Рассмотрим два варианта работы с XML: средствами внутреннего языка и средствами внутреннего языка с использованием XDTO пакетов.

Чтение файла XML средствами внутреннего языка 1С

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

Таким образом, зная структуру файла, можно его разобрать «по полочкам» в программе 1С.

Запись данных из 1C в XML

Так же создадим объект ЗаписьXML.

Получите 267 видеоуроков по 1С бесплатно:

Таким образом мы выгрузим код и наименование всех организаций из справочника 1С «Организации».

Выгрузка из 1C в XML с помощью XDTO-пакетов

В 1С предприятии существует такой объект метаданных, как XDTO-пакеты. Они служат для обмена данными в формате XML.

XDTO-пакет позволяет создать структуру, по которой потом пойдет выгрузка данных. Покажу пример такой структуры:

Теперь, определив структуру (ее, кстати, можно загрузить из файла), мы можем смело сформировать файл:

Вот так, определив заранее схему, можно создать файл любой сложности.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Чтение и запись XML в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Формат XML пользуется большой популярностью при обмене различными текстовыми документами между информационными системами. Возможность создания уникальной структуры у документов позволяет ее использовать во многих областях – электронные библиотеки, WEB, импорт/экспорт, а также многих других. Без возможности удобной работы с этим форматом системы 1С не смогли бы получить такую популярность. Поскольку 1С активно использует WEB-технологии, каждый разработчик должен уметь читать XML и записывать в них информацию.

Представление файла XML и его чтение

Одним из ключевых преимуществ языка разметки XML является достаточно удобная и интуитивно понятная структура и синтаксис. При его создании авторы ставили цель создать язык разметки, который был бы удобен для чтения и человеком, и ЭВМ. На сегодняшний день XML получил широкое развитие в другие форматы, но остается популярным и широко используемым. Структура XML файла строится по следующей схеме:

Для рассмотрения примера импорта данных в 1С достаточно будет представленного выше файла. Чтобы написанная процедура смогла прочитать XML файл, достаточно в нее передать путь к самому файлу. Это можно сделать через интерфейс, позволив пользователям самостоятельно указывать файл, либо жестко прописав в тексте обработки.

Одним из популярных способов работы с XML размером до 100 МБ в 1С считается использование объектной модели документа (DOM). Его смысл заключается в поочередной обработке всех узлов документа, представленных в XML. На встроенном языке 1С этот алгоритм выглядит так:

  1. Объявление механизмов, с помощью которых происходит чтение XML файла; Цикл для обхода узлов;
  2. Считывания данных и атрибутов в узле;
  3. Вывод информации. Если есть необходимость, на этом этапе может происходить запись в переменные или сразу в нужные таблицы;
  4. Завершение работы механизма.

В качестве результата мы выводим пользователю сообщения с импортированными данными. Также вы можете поместить все данные в нужную структуру и на ее основании запрограммировать создание документа или записей в справочнике. Скорость работы 1С с xml достаточно велика, поэтому все чаще именно этот формат используется при обмене данными с другими источниками.

Для выгрузки информации нам также пригодится взаимодействие с файлами формата XML. Рассмотрим пример записи с помощью объекта платформы 1С ЗаписьXML и выгрузим данные по номенклатуре. Главными его преимуществами являются простота кода и скорость обработки данных. Серверный алгоритм записи файла XML можно представить в виде нескольких последовательных шагов:

  1. Подключаемся к файлу xml;
  2. Создаем головные элементы и в них записываем данные. Если вы хотите выгрузить в XML файл большой объем информации, то на этом этапе у вас будут использоваться циклы. Будьте аккуратны и не забывайте, что запрос данных нужно делать до цикла, а не в нем;
  3. Закрываем файл.

Механизм XDTO в 1С

Разработчики компании 1С для обмена информацией через XML создали собственный механизм – XDTO (XML Data Transfer Objects). Начиная с версии 8.1, в платформе появляется возможность обмениваться данными с другими системами, не вникая в вопросы формирования файла XML. Большинство технических вопросов берет на себя 1С, а нам остается только указывать данные, необходимые, чтобы сформировать XML. Правда, для этого разработчику необходимо заранее проделать некоторые манипуляции.

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

В данном случае создадим руками простой пакет, чтобы 1С понимала структуру нашего файла для примера. Чтобы формирование файла закончилось успешно, нам нужно отразить в схеме, что у нас присутствует головной элемент и вложение с атрибутами. Созданную схему нужно экспортировать в файл формата xsd и передать вместе с xml, чтобы другой стороне не понадобилось разбираться со структурой и опять создавать пакет xdto.

Сохранить новый XML на жесткий диск поможет серверный алгоритм, похожий на предыдущий. Отличие состоит лишь в необходимости добавления данных по 1 товару в фабрику XDTO – специальный механизм платформы 8.3 1С. Если есть необходимость делать больше уровней вложенности – придется описывать каждый головной элемент.

Рассмотренные механизмы являются достаточно универсальными и при правильной настройке могут решить большинство задач. Однако во взаимодействии 1С и XML достаточно много нюансов. Изучать их намного эффективнее в реальных условиях, а не на тестовых задачах, в которых обработка XML файла решает достаточно узкие задачи.

Оцените статью
SoftLast
Добавить комментарий