XDTO пакет
XDTO-пакеты — это общие объекты конфигурации. Они являются частью механизма XDTO. XDTO-пакеты позволяют описать в конфигурации систему типов и значений для взаимодействия с различными внешними источниками данных, например с Web-сервисами.
В конфигурацию может быть добавлено произвольное количество XDTO-пакетов.
Возможно выполнение следующих действий:
- создание XDTO пакета с помощью импорта схемы XML;
- добавление нового XDTO пакета в дерево конфигурации и последующее его редактирование;
- экспорт существующего XDTO пакета в схему XML.
Также система 1С:Предприятие 8 поддерживает возможность экспорта набора XML схем данных конфигурации.
Редактирование XDTO пакета осуществляется в специальном окне, отображающем иерархическую структуру XDTO-пакета:
XDTO-пакет в 1С: что это такое, как осуществляется обмен и выгрузка данных
Релиз платформы 1С версии 8.1 открыл для пользователей новый механизм, получивший название XML Data Transfer Objects. Его использование позволяет упростить конвертацию информации из учетной программы в соответствии со стандартной конфигурацией, обеспечивающей возможность чтения документа другими приложениями и сводящей к минимуму вероятность возникновения ошибок обработки. Функциональная задача инструмента — помощь в создании файлов, формат и структура которых будет понятна как юзеру, так и машинному алгоритму. Давайте разберемся, что такое пакет XDTO в 1С 8,1, схему выгрузки в таблицу значений, обмена и записи в XML, и почему это просто находка для тех, кто не слишком хорошо знаком с нюансами работы в нескольких системных программах.
Общее представление
Начнем с того, что рассматриваемый механизм, расшифровка названия которого переводится как «XML-объекты переноса данных», не относится к числу международных стандартов. Фактически это собственное детище разработчиков платформы, так что за ее пределами вам вряд ли доведется встретить аналогичные примеры. Перечень свойств, которыми обладает ПО, обуславливается спецификой взаимодействия с учетной базой — навык создания и работы с объектами типа пакеты XDTO в 1С пригодится только тем, кто постоянно работает с программой.
Функциональные возможности
- Описание параметров и возвращаемых значений различных Web-сервисов.
- Обмен информацией между конфигурацией Предприятия.
- Передача данных с использованием структуры XML без привязки к форме.
- Формирование собственной системы типовых характеристик, позволяющей обрабатывать произвольную информацию.
В целом — не так уж и мало, если принять во внимание эффективность оптимизации процессов, сопряженных с конвертацией документов для последующего чтения различными программными продуктами. Однако для того, чтобы лучше разобраться в том, какие именно возможности открывает новый механизм, следует подробнее погрузиться в базовую терминологию.
Готовые решения для всех направлений
Ускорьте работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.
Мобильность, точность и скорость пересчёта товара в торговом зале и на складе, позволят вам не потерять дни продаж во время проведения инвентаризации и при приёмке товара.
Обязательная маркировка товаров — это возможность для каждой организации на 100% исключить приёмку на свой склад контрафактного товара и отследить цепочку поставок от производителя
Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.
Повысьте точность учета имущества организации, уровень контроля сохранности и перемещения каждой единицы. Мобильный учет снизит вероятность краж и естественных потерь.
Повысьте эффективность деятельности производственного предприятия за счет внедрения мобильной автоматизации для учёта товарно-материальных ценностей.
Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.
Исключи ошибки сопоставления и считывания акцизных марок алкогольной продукции при помощи мобильных инструментов учёта.
Получение сертифицированного статуса партнёра «Клеверенс» позволит вашей компании выйти на новый уровень решения задач на предприятиях ваших клиентов..
Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.
Типы, объекты и фабрики
Количество программистов, по долгу службы создающих различные файлы формата XML, вряд ли поддается подсчету. А вот вариаций в пространствах имен, используемых в 1С и других программах, существенно меньше — и в тех случаях, когда в рамках одной информационной системы сталкиваются одинаковые понятия, характеризующие различные показатели, происходит конфликт значений. Как правило, для наименования пространственных объединений используются строки-идентификаторы, структура которых схожа с URL-ссылками — подобные примеры встречаются в любом документе и могут смутить сотрудников, не знакомых со спецификой их происхождения. Подобный формат обеспечивает уникальность и исключает вероятность пересечения двух пространств, содержащих идентичные по общему названию группы объектов.
Расширение XDTO пакета 1С
Главным корневым элементом подсистемы выступают рассматриваемые массивы, от которых разветвляются и множатся все остальные связи. Именно с них и стоит начать рассмотрение предложенной модели данных.
Особенности конфигурации
Вероятно, каждый пользователь наблюдал в общей структуре ветку Пакеты XDTO. Однако мало кто знает, что на практике она не считается обязательной — описание составляющих не является важным условием работы. Этот раздел решает прикладные задачи и используется в качестве вспомогательного рабочего средства. Чтобы лучше понять, как функционирует фабрика XDTO в 1С, достаточно закрепить базовый тезис: ее задачей выступает создание объектов, относящихся к типам, соответствующим модели данных.
То есть каждая предлагаемая конфигурация по умолчанию содержит механизм, опции которого позволяют создавать описанные, прошитые в системе или созданные разработчиком элементы, включая прообразы справочных списков, документов, реестров и т. п. Сгенерированный автоматически, он доступен в коде в качестве глобальной переменной, с присвоенным наименованием Фабрика XDTO. Все пакеты, закрепленные в соответствующей ветке, представляют собой компоненты, содержащие описание доступных для создания типовых объектов, что обеспечивает возможность сочетания собственных и платформенных значений.
Особенности устройства
С технической точки зрения под пакетными подразумеваются логически цельные наборы типов, характеризующиеся обязательным наличием именного пространства, гарантирующего уникальную идентификацию. Возвращаясь к базовой конфигурации, можно сказать, что выгрузка на основе XSD позволяет создать XML по схеме 1С, соответствующей стандартному протоколу обработки и чтения другими программными приложениями.
В состав пакета входит перечень простых и составных описаний типовых объектов, оперирование которыми требуется для аналитического учета, а также набор вспомогательных средств, применяемых для перевода имен переменных с одного языка на другой в процессе конвертации. С точки зрения программирования, внедрение XDTO-пакетов обуславливает необходимость использования таких понятий, как:
- ТипЗначения XDTO;
- ТипОбъекта XDTO;
- Значение XDTO;
- Объект XDTO;
- Список XDTO.
С типами и значениями все обстоит точно так же, как и в других структурах, а вот списки требуют более детального разбирательства. При определении для любого из свойств верхнего порогового предела, отличного от единицы, создается условие, допускающее его неоднократное повторение. Фактически это способ манипуляции множествами одного формата.
Интеграция в конфигурацию
Самый простой вариант — встраивание собственных пакетных объектов. Использование переменной, обладающей названием и типом Фабрика XDTO, позволяет создать в 1С необходимую структуру, содержащую все требуемые элементы, начиная с присвоенных по умолчанию и заканчивая прикладными, а также добавленными к дереву метаданных. Подобный алгоритм легко реализуется вручную и не предусматривает особого функционала.
Повторение значений
Нельзя не отметить, что концепция, предложенная разработчиками и предусматривающая использование идентичных названий, нередко становится причиной путаницы. Речь идет о глобальной переменной, что само по себе создает сложности работы, одинаковые тип и название провоцируют семантическую неразбериху, особенно в тех случаях, когда основной объем задач, решаемых программистом, никак не связан с фабриками. Тем не менее это один из неотъемлемых атрибутов инструмента, с которым придется мириться в процессе взаимодействия.
Сериализация XDTO
Еще один аспект, продиктованный благими намерениями, но нередко открывающий дороги в ином направлении. Сама по себе идея переноса данных призвана обеспечить условия, достаточные для быстрой передачи информации между устройствами и программными приложениями, в максимально понятном виде и с возможностью обратной выгрузки. В результате этого конечным форматом каждого документа становится XML, то есть по логике достаточно обойтись автоматической записью и повторным чтением. Однако в этом случае необходимо дифференцировать два разных механизма:
- Создание XDTO и последующая сериализация в обоих направлениях
- Извлечение из объектов прикладных элементов, включая строки, ссылки и т. д.
При этом важно понимать, что для Фабрики XDTO не существует таких понятий, как метаданные, конфигурация или таблицы значений. Единственное, чем она оперирует — искомые и формируемые в процессе записи или чтения типы XML, схожие с оригинальными и описывающие те же объектные параметры, но в собственных терминах. Соответственно, сериализатор выступает в качестве посредника между фабрикой и средой исполнения, имеющего представление о чтении узлов и их интерпретации.
Очевидно, что указанные механизмы, несмотря на четкое разграничение, на самом деле неотделимы друг от друга. И все же их функциональная сущность различна — платформа пытается замаскировать существующую принципиальность различий, автоматически реализуя процедуру сериализации тех типов, которые ей доступны.
Чистый XDTO
В тех ситуациях, когда пользователю требуется, например, извлечь из «Карточки» непосредственное значение, не адаптированное сериализатором под готовые 1С строки, следует воспользоваться методом «Получить», функционал которого обеспечивает возврат искомого объекта.
Список XDTO
Еще один класс, функциональные возможности которого позволяют создавать условия для группового взаимодействия с объектными наборами. Формируется при условии, что одному из свойств установлена предельная граница, не равная нулю — число определяет максимально допустимое количество, при этом значение «-1» показывает отсутствие ограничений.
Задача списков — обработка и оптимизация рутинных процессов, однако в этом аспекте важно понимать, когда именно реализуется подобный формат сериализации. Так, обход синтаксис-помощника работает через итератор, а также через метод «Получить» (Номер) — в обоих случаях результирующий показатель получится сериализованным, представляя собой ссылку 1С.
Фабрика XDTO
Здесь речь идет о классе, выступающим единственным средством, обеспечивающим прямую и обратную конвертацию файлов формата XML в объектные элементы. Фабрика тщательно отслеживает соответствие установленной по умолчанию схеме, и в тех ситуациях, когда наполнение расходится с заданной конфигурацией, возникает исключение времени выполнения.
Свойство «Пакеты»
Ранее мы уже упоминали о том, что под моделью данных подразумевается пакетный массив. Исходя из этого, можно рассматривать предыдущий класс в качестве его непосредственного пользователя. Обращение к коллекции допускается как на основании присвоенного автоматически числового параметра, так и по унифицированному кодификатору ресурса, либо, при необходимости, с использованием стандартного перебора.
Теперь рассмотрим основные применяемые методы.
Тип ()
Предусматривает получение полной вводной, т. е. URI и имени, и в качестве результата возвращает конкретный объект или значение — в зависимости от параметров. Подобные элементы сопоставимы с классом «Метаданные», применяемым в синтаксисе 1С, и обеспечивают определение типа XDTO, к примеру, по таким характеристикам, как перечень свойств, длина, маска и т. д.
Создать ()
Пожалуй, наиболее популярная опция, благодаря которой фабрика в полной мере оправдывает собственное название. Конфигурирует объектные файлы в соответствии с заданной схемой.
Записать XML ()/Прочитать XML ()
Обеспечивают отправку в поток, чтение и последующее создание объекта на его основании. Характеризуются наличием ряда особенностей.
Чтение XML
Любое взаимодействие с документами подобного рода подразумевает наличие источника, в качестве которого могут выступать текстовые документы, модели данных, либо FastInfoset. Само происхождение не имеет принципиального значения, поскольку все указанные варианты взаимно заменяют друг друга. Перед тем как создать и добавить пакет XDTO в 1С, потребуется соотнести область происхождения файла с началом конкретного узла, и воспользоваться методом Фабрика XDTO.Прочитать XML ().
При этом в большинстве случаев потребности пользователя характеризуются необходимостью получения понимаемых определенных элементов. Для уточнения существует второй параметр, позволяющий проверить соответствие схеме — тип объекта. При положительном исходе проверки система генерирует необходимый результат, исключая вероятность наличия ошибочных реквизитов.
Запись XML
Для реализации процедуры применяется 1С пример Фабрика XDTO.Записать XML (ПотокЗаписи, Объект XDTO), что позволяет по дефолту помещает компонент в соответствующий типовому значению именной узел. Важно учесть, что структура XML допускает запись особого атрибута — xsi:type — который содержит явное указание на заданный критериями объектный тип. Необходимость пометки в файле обеспечивается вводом в методе параметра «УказаниеТипа».
Собственная фабрика и модель данных XDTO
Для функционирования механизма требуется информационное моделирование, то есть массив пакетов, позволяющий генерировать объекты. Процедура создания, как и в случае с иными элементами языка, используемого платформой, реализуется через встроенный конфигураторов — за функцию отвечает оператор «Новый Фабрика XDTO», который может возвращать неопределенно в таблицу значений 1С Объект XDTO при неправильном указании параметров.
Конструкторы
Существует два варианта, каждый из которых сводится к потребности наличия доступного для осуществления функционала пакетного массива, выступающего основой для модели данных. Изучение синтаксис-помощника позволяет уточнить, что от пользователя требуется создать объект, имеющий тип Model, который был объявлен в именном пространстве http://v8.1c.ru/8.1/xdto. Таким образом, решение задачи рассматривается в качестве простого алгоритма, предусматривающего создание очередного описания Объект XDTO для дальнейшего использования конструктором. Упростить процедуру помогают два метода экспортирования — «ЭкспортМодели XDTO ()» и «ЭкспортСхемы XML ()», которые обеспечивают возврат готовых элементов, адаптированных к конфигурации системы.
Выгрузка модели данных
Стандартная последовательность действий предусматривает несколько этапов:
- Формирование перечня пакетов с указанием в списке нужных вариантов.
- Создание массива URI с отмеченными значениями и генерация файла.
- Запись с явным указанием параметров необязательного типа.
- Запуск собственной фабрики на основе полученного результата.
Функции XDTO 1С — описание возврата web-сервисов, конвертация, передача и чтение информации — заметно упрощают взаимодействие с платформой и другими системными приложениями. Подобные решения представляют особую значимость для успешной реализации бизнеса, специфика которого предусматривает активную работу с учетными базами. Для тех, кто предпочитает оптимизировать все процессы, создавая эффективный управленческий цикл, стоит также рассмотреть возможности мобильной автоматизации, предлагаемые компанией «Клеверенс» — интеграция Mobile SMARTS на 70% сокращает издержки на проведение рутинных операций по учету товара, и позволяет свести к минимуму ошибки и расхождения, вызванные человеческим фактором.
Количество показов: 4907
Статьи по схожей тематике
ИТ-инфраструктура: что это такое, описание и компоненты
Программа Айко для общепита: система для ресторана iiko
No code: платформа для разработки без кода
Mobile Device Management: решения для мобильных устройств MDM
Low-code: что это за платформа и для чего она нужна
Российские операционные системы: какая отечественная ОС лучше
Что такое сервер: основные функции компьютерных серваков и для чего они нужны
Система видеонаблюдения для склада: как выбрать и установить складские видеокамеры
Подписаться на новости
117105, г. Москва, Варшавское шоссе, д. 37А
Отдел продаж: +7 (495) 662 98-03
sales@cleverence.ru
Пн-пт: с 07-00 до 19-00
XDTO в 1С
В этой статье попробую рассказать о механизме 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-файл.
Для успешного импорта XML-схемы (XSD) в XDTO пакет, необходимо наличие в XSD-файле атрибута «targetNamespace» с указанием пространства имен, иначе импортировать схему не удастся.
Пространство имен обычно указывается URL-подобной строкой (хотя на самом деле это может быть любая строка) и служит для того, чтобы избежать путаницы в том случае, если в разных XDTO пакетах у нас имеются объекты с одинаковым названием.
Таким образом понятно, что названия объектов должны быть уникальны в пределах одного пространства имен (по сути в пределах одного XDTO пакета)
XSD-файл можно сделать самому — написать руками в блокноте или сделать XDTO пакет прямо в конфигураторе, кроме этого можно воспользоваться какой-нибудь специализированной программой (например Liquid XML Studio) или онлайн сервисом (Google в помощь) которые умеют создавать XSD-файлы из XML. При использовании программ и сервисов нужно быть осторожным, так как по моему опыту результат их работы (XSD-файл) очень часто не подходит для использования в 1С — неправильно указываются типы данных и, как следствие, записать XML-файл при помощи такого XDTO пакета не удастся. В качестве примера приведу два XDTO пакета для одного и того же XML-файла.
Слева тот, что создан руками, справа — программой.
Работа с XDTO в 1С неразрывно связана с объектом «ФабрикаXDTO». Именно этот объект читает и записывает данные из/в XML-файл(а), а также создает все нужные объекты с которыми можно привычно работать «через точку».
Перейдем к практике.
Допустим у нас есть файл заказ вот такого вида:
Работа с XDTO-пакетами
В этой статье я хочу поговорить о таком объекте конфигурации 1С как XDTO-пакет. Статья демонстрирует пример работы с XDTO и предназначена для разработчиков.
Коротко о том, что такое XDTO. С английского XMLDataTransferObjects, дословно – объекты переноса данных xml. По сути, предназначение XDTO-пакета 1С в том, чтобы описать структуру текста в xml и дать возможность работать с ним, как с объектом. Меньше слов, больше дела 🙂 Есть конкретная задача.
2. Использование формата схемы xsd
В производственном цехе поставили новое оборудование, которое контролирует процесс производства. На оборудовании установлено программное обеспечение (ПО). Имея данные о товарах, ПО записывает значения взвешивания при производстве, и может отдавать информацию о затратах материалов и количестве производимой продукции. Оборудование умеет «отдавать» и принимать файлы. Как же теперь связать стороннее ПО с 1С? Можно посмотреть структуру файла xml, читать его последовательно, преобразовывая строки в нужные типы данных (число, дата, булево). Но с XDTO все намного проще! Разработчик ПО для оборудования описал структуру файлов в формате схемы xsd и передал ее нам. Чем это нам поможет?
Xsd-схема (ее часть) выглядит так:
Ее мы с легкостью загружаем в конфигурацию (в ветке XDTO-пакеты выбираем «Импорт XML-схемы»):
И теперь файл xsd схемы стал объектом метаданных конфигурации. В нем четко описано, какая будет структура xml файлов, какие имена у атрибутов, и какие типы данных они содержат.
Вот как это выглядит в конфигурации:
Итак, у нас есть загруженный XDTO-пакет (формат файлов стороннего ПО). Далее формируем выгрузку товаров из 1С.
Пускай это будет обработка. В ней одна кнопка формирования файла xml.
Основная процедура будет такой:
Есть каталог, куда мы складываем файлы (потом оборудование их заберет). Для формирования каждого файла — своя процедура.
3. Фабрика XDTO
Рассмотрим формирования тестового файла Contractor.xml
При помощи общего объекта Фабрика XDTO создаем типы, которые описывают объекты Contractors и contractor (см. скрины выше). С помощью той же фабрики XDTO создаем массив с типом Contractors, в который будем складывать объекты с типом contractor.
Когда мы создали объект XDTO, при помощи фабрики мы уже работаем с ним именно как объектом, а не как с xml-текстом. То есть обращаемся к его реквизитам через точку и назначаем их через знак «=», как будто работаем с обычным справочником.
В примере мы заполняем объект выдуманными данными, а на деле заполнение будет проходить с выборки справочника 1С. Когда мы закончили наполнение, осталось лишь записать файл и вернуть результат выполнения функции.
Вот так просто мы заполнили и сохранили файл, полностью соответствующий формату стороннего ПО.
Если мы получим такой же объект от оборудования, то обработка файла xml будет выглядеть так. Создаем чтение xml файла, читаем его через фабрику и работаем, как с объектом.
Подводя итог. XDTO-пакет (xsd-схема) помогает разработчикам двух разных программных продуктов (в нашем случае 1С и ПО оборудования в цехе) согласовать структуру файлов обмена 1С и типы значений в них. К тому же работать с объектом XDTO куда проще, чем с текстом. Вот так просто пользоваться XDTO-пакетами 1С!
Специалист компании ООО «Кодерлайн» Вадим Хоменко.