Создание xdto пакета 1с

Аббревиатура XDTO расшифровывается как XML Data Transfer Objects. XDTO является механизмом объектного моделирования данных, описываемых с помощью схемы XML.

Основные возможности использования XDTO

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

XDTO пакет

Механизм XDTO реализован с помощью набора объектов встроенного языка и объекта конфигурации XDTO пакет.

Возможно выполнение следующих действий:

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

Также система 1С:Предприятие 8 поддерживает возможность экспорта набора XML схем данных конфигурации.

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

XDTO- сериализация

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

  • все типы данных хранящиеся в базе данных
  • некоторые другие типы

XDTO-сериализация предназначена для сохранения данных объекта в файл XML и создания объекта на основе данных, хранящихся в файле XML:

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

XDTO (XML Data Transfer Objects) — это разработка фирмы 1С и ни в каком другом языке программирования эту аббревиатуру не встретишь.

Основное назначение этого механизма — обмен данными, как с другой конфигурацией 1С, так и со сторонними приложениями. Кроме этого XDTO используется для описания параметров и возвращаемых значений web-сервисов, а также для произвольной обработки данных.

Основная «полезность» механизма XDTO заключается в том, что он позволяет работать (чтение и запись) с XML-файлом как с объектом 1С — «через точку» и не думать при этом о тегах и атрибутах XML.

Читайте также:  Что делать если сталкер не запускается

Реализован механизм XDTO при помощи объекта конфигурации «Пакет XDTO». Этот объект в действительности является обычной XML-схемой (XSD) т.е. описывает структуру какого-либо XML-документа.

Средствами 1С мы можем:

  • превратить XSD-файл в объект «пакет XDTO»;
  • добавить новый «пакет XDTO» и редактировать его так, как нам нужно;
  • превратить «пакет XDTO» в XSD-файл.

Действия с XDTO пакетом

Для успешного импорта XML-схемы (XSD) в XDTO пакет, необходимо наличие в XSD-файле атрибута «targetNamespace» с указанием пространства имен, иначе импортировать схему не удастся.

Не хватает атрибута «targetNamespace»

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

Таким образом понятно, что названия объектов должны быть уникальны в пределах одного пространства имен (по сути в пределах одного XDTO пакета)

Пространство имен в XSD-файле

XSD-файл можно сделать самому — написать руками в блокноте или сделать XDTO пакет прямо в конфигураторе, кроме этого можно воспользоваться какой-нибудь специализированной программой (например Liquid XML Studio) или онлайн сервисом (Google в помощь) которые умеют создавать XSD-файлы из XML. При использовании программ и сервисов нужно быть осторожным, так как по моему опыту результат их работы (XSD-файл) очень часто не подходит для использования в 1С — неправильно указываются типы данных и, как следствие, записать XML-файл при помощи такого XDTO пакета не удастся. В качестве примера приведу два XDTO пакета для одного и того же XML-файла.

Сравнение XDTO пакетов

Слева тот, что создан руками, справа — программой.

Работа с XDTO в 1С неразрывно связана с объектом «ФабрикаXDTO». Именно этот объект читает и записывает данные из/в XML-файл(а), а также создает все нужные объекты с которыми можно привычно работать «через точку».

Перейдем к практике.

Допустим у нас есть файл заказ вот такого вида:

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

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

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

Читайте также:  Телевизионная приставка switron iptv 1500 цена

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С:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        Adblock detector