Объект 1С «XDTO-пакеты»

XDTO (XML Data Transfer Objects) — механизм, обеспечивающий объектное моделирование данных схемы XML. XDTO позволяет оперировать не узлами XML, а прикладными типами данных и встроенными типами платформы. Механизм XDTO реализован при помощи общего объекта конфигурации XDTO-пакет.

ВАЖНО! Схема обязательно должна содержать описание пространства имен в виде URL-подобной строки. Если пространство имен не задано, то стороннюю XML-схему импортировать не удастся.

XDTO-пакеты — это общие  объекты конфигурации, которые являются частью механизма XDTO и позволяют описать в конфигурации систему типов и значений для взаимодействия с различными внешними источниками данных, например с Web-сервисами.

XDTO-пакет является своеобразным переводчиком между разными информационными системами, с помощью которого можно описать, например,  структуру (схему) будущего xml-файла.

В конфигурацию может быть добавлено произвольное количество XDTO-пакетов.

Замечание

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

[свернуть]

Механизм XDTO

Механизм XDTO (XML Data Transfer Objects) — один из механизмов интеграции 1C с другими системами, который является механизмом объектного моделирования данных, описываемых с помощью схемы XML.

Механизм XDTO позволяет на уровне языка 1С оперировать не узлами XML, а прикладными понятиями «Накладная», «Сотрудник», «Счет» и т.д., а также встроенными типами  1С (“ТаблицаЗначений”, “СправочникСсылка” и т.п.).

Основные возможности XDTO:

  • описание типов параметров и возвращаемых значений Web-сервисов;
  • обмен данными между конфигурациями 1С:Предприятия 8 с существенно разными структурами данных;
  • обмен данными на основе схем XML, не привязанных к той или иной конфигурации (например, обмен с информационными системами, построенными не на основе 1С:Предприятия 8);
  • создание собственной системы типов и значений для обработки произвольных данных.

ФабрикаXDTO

Работу механизма XDTO обеспечивает объект встроенного языка ФабрикаXDTO: именно она отвечает за сериализацию XDTO-объектов в XML и обратно. Причем, за преобразование объектов XDTO в прикладные объекты и встроенные типы отвечает механизм XDTO-сериализации. То есть, процедура приведения объектов 1С к объектам XML схемы двухэтапная.

Особенности ФабрикиXDTO:

  1. При программном создании фабрики XDTO, типы в ней определенные, не могут расширяться, определяются в полном объеме при создании.
  2. Типы, определенные в глобальной фабрике XDTO, могут расширяться за счет:
    • создания пакетов XDTO;
    • изменения состава объектов конфигурации.
 

Создание XDTO-пакета 1С

XDTO-пакеты 1С

Свойства XDTO-пакета 1С:

[свернуть]

Система 1С позволяет выполнить следующие действия:

  • создать XDTO-пакет с помощью импорта схемы XML;
  • добавить XDTO-пакет в дерево конфигурации и редактировать его в дальнейшем;
  • экспортировать существующий XDTO-пакет в схему XML.

Редактирование XDTO-пакета 1С

Редактирование XDTO-пакета 1С осуществляется в специальном окне, отображающем его иерархическую структуру:

XDTO-пакеты 1С

Особенности использования XDTO-пакетов в 1С:

  1. В рамках создаваемого пакета XDTO (без использования директивы импорта) можно использовать:
    • типы, определенные только в данном пакете и
    • типы, стандартные для XML.
  2. При определении типа свойства объекта XDTO информация о типе включает:
    • имя типа и
    • имя пространства имен (необходимо во избежание их пересечения).
  3. Понятию «Пакет XDTO» больше всего соответствует такое понятие XML как схема XML документа.
  4. Понятию «Фабрика XDTO» больше всего соответствует такое понятие XML как набор схем XML.
  5. В рамках модели XDTO понятие «Фасет» относится к типу значения XDTO.
  6. При программном создании фабрики XDTO, типы, в ней определенные, не могут расширяться, определяются в полном объеме при создании.
  7. Типы, определенные в глобальной фабрике XDTO, могут расширяться за счет создания пакетов XDTO, изменения состава объектов конфигурации.

Сериализация в 1С с помощью XDTO-пакета

XDTO-сериализация предназначена для сохранения данных объекта в файл XML и создания объекта на основе данных, хранящихся в файле XML. Это процесс приведения данных 1С:Предприятия в строку формата .xml (обратный процесс — десериализация).

Сериализованы могут быть не все объекты, а те, которые имеют соответствующую запись в Синтакс-помощнике: «Данный объект может быть сериализован в/из XML».

В системе 1С:Предприятие 8 реализована сериализация данных на основе механизма XDTO, которая позволяет сериализовать в/из XML:

  • все типы данных, хранящиеся в базе данных;
  • некоторые другие типы данных.
Простые типы с точки зрения XML-сериализации

Простые типы с точки зрения XML-сериализации —  это типы, значение которых может быть представлено в XML в виде строки:

  • Число;
  • Строка;
  • Дата;
  • Булево;
  • ДвоичныеДанные;
  • NULL;
  • УникальныйИдентификатор;
  • ХранилищеЗначения;
  • ссылки на объекты базы данных;
  • ссылки на перечисления метаданных.

Таким образом, с точки зрения XML-сериализации, например, значение типа «ДокументСсылка.ИмяДокумента» относится к простым типам.

[свернуть]
Сложные типы с точки зрения XML-сериализации

Сложные типы в XML представляются как объекты, содержащие вложенные элементы. К ним относятся:
  • Тип;
  • ОписаниеТипов;
  • КонстантаМенеджерЗначения;
  • объекты базы данных;
  • наборы записей регистров, последовательностей, перерасчетов;
  • УдалениеОбъекта.

[свернуть]

При записи значения с использованием средств XML сериализации в XML документ применяются:

  1. методы, относящиеся к средствам XML-сериализации и
  2. объект «ЗаписьXML».

Пример отсюда:

Например, вот такой, привычный в 1С, код:

С помощью описанного пакета XDTO сериализуется в xml-файл такого типа:

XML

Работа с XML-документами доступна непосредственно из встроенного языка системы 1С:Предприятие 8.

Рисунок

xml-документы в 1С

[свернуть]

Система 1С предоставляет возможность:

  1. последовательно читать и записывать xml-документы:
    • преобразовывать из строки, полученной из текста элемента или значения атрибута XML, в значение в соответствии с указанным типом;
    • получать строковое представление значения для помещения в текст элемента или значение атрибута XML;
    • получить тип данных XML, соответствующий переданному в качестве параметра типу;
    • производить проверку возможности чтения из XML значения указанного типа;
    • производить проверку соответствия схеме XML при чтении XML
    • производить запись значения в формате XML;
    • возвращать тип, соответствующий типу данных XML.
  2. использовать модель объектного доступа к данным xml-документов (ДокументDOM), соответствующую следующим стандартам:
    • DOM Level 2;
    • XPath (DOM Level 3);
    • DOM Load and Save (DOM Level 3).
  3. использовать объектную модель схемы XML (СхемаXML);
  4. использовать канонический XML стандарт 1.1 (Canonical XML 1.1).

Используя внешнее соединение и механизмы работы с XML можно организовывать интеграцию с прикладными системами по принятым в этих системах форматам. Для этого применяются механизмы XSL-преобразования.

Пример

Отсюда

Например, для такой интеграции можно использовать BizTalk сервер компании Microsoft:

[свернуть]

Fast Infoset

Платформа предоставляет средства для работы с XML-документами в бинарном формате Fast Infoset. Технология Fast Infoset использует альтернативный синтаксис отображения XML-данных. Это обеспечивает меньший объем файлов и более высокую скорость обработки, чем скорость обработки данных, записанных в обычном XML-формате. Файл, записанный в формате Fast Infoset, имеет расширение .fi или .finf.

Читай также:

  1.  http://master1c8.ru/
  2. https://infostart.ru/public/167459/
  3. http://expert.chistov.pro/public/98019/
  4. Использование объектов XDTO в web-сервисах

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.