1с как добавить списокxdto
С помощью механизма XDTO можно описать систему типов и значений, с помощью которой можно легко выполнить сериализацию/десериализацию в XML/JSON.
XDTO можно сравнить со схемой XML. С помощью механизма XDTO можно создать XML-схему, а потом на основании этой схемы сформировать XML-документ.
XDTO может применяться в следующих случаях:
- Для описания типов параметров и возвращаемых значений Web-сервисов.
- Для описания структуры данных, используемой при обмене с внешними системами (в том числе с другими базами на платформе 1С).
- Для создания собственных типов и значений, используемых внутри конфигурации 1С.
Создание XDTO-пакета
В качестве примера рассмотрим следующую задачу: нужно настроить обмен документами между двумя различными конфигурациями на 1С. В обеих конфигурациях используются 2 типа документов: приходные и расходные накладные. Состав и наименование реквизитов в разных конфигурациях отличается.
Для обмена будет использоваться определенный формат следующего вида:
Есть корневой элемент Документ, который имеет 2 свойства: Тип и Состав. Состав включает в себя массив строк со свойствами: Номенклатура, Количество и Сумма.
Для описания данного формата будем использовать XDTO-пакет. XDTO-пакет можно сравнить со схемой XML, в нем мы укажем какие типы будут использоваться внутри пакета и каким образом они должны быть сериализованы в XML.
Добавим в пакет новый Тип объекта:
В свойствах укажем Имя Документ:
Это корневой узел нашего формата.
В свойствах укажем Имя Тип:
В данном свойстве будет строкой храниться тип выгружаемого документа. Поэтому нужно заполнить свойство Тип, чтобы при записи в XML платформа знала как нужно его сериализовать.
Чтобы заполнить тип сначала нужно нажать на зеленую галочку возле свойства:
Данный тип соответствует типу 1С Строка.
Добавим для объекта Документ еще одно свойство Состав, но тип пока заполнять не будем. Должно получиться так:
Теперь добавим новый тип объекта Состав. Он будет использоваться для сериализации табличной части документа. Добавим для него одно свойство Строка, тип пока не будем указывать:
Так как в табличной части может быть несколько строк, то для свойства Строка в свойстве Максимальное количество нужно указать -1 (предварительно нужно нажать на зеленую галку):
Это означает, что в данном свойстве может храниться неограниченное количество значений (аналогично массиву).
Теперь для свойства Документа Состав в качестве типа укажем только что созданный объект Состав. Чтобы его выбрать нужно развернуть пространство имен созданного нами XDTO-пакета:
И наконец для свойства Строка объекта Состав укажем тип Строка (только что созданный нами тип объекта):
На этом создание XDTO-пакета завершено. Для удобства переименуем его в Документ (нужно щелкнуть по пакету правой кнопкой, выбрать Свойства и изменить свойство Имя):
Сериализация XDTO в XML
Теперь напишем простую процедуру для сериализации приходного документа в XML через механизм XDTO.
Сначала рассмотрим некоторые понятия, которые будут использоваться в процессе сериализации:
Использование объектов XDTO в web-сервисах
Механизм XDTO представляет собой гибкое средство моделирования данных, которое широко используется в технологии web-сервисов 1С:Предприятия. В этой статье мы рассмотрим, как с использованием XDTO можно задавать различные типы данных и как их применять в web-сервисах.
Центральным понятием механизма XDTO является понятие объекта переноса данных . Объект переноса данных можно представить как одиночный объект или замкнутый граф объектов, который может быть перенесен с одного компьютера на другой. Объект переноса данных характеризуется двумя основными свойствами: возможностью сериализации/десериализации в формат передачи данных (как правило, в XML) и свойством замкнутости.
Способность сериализоваться/десериализоваться в формат переноса данных позволяет объекту переноса данных мигрировать с одного компьютера на другой. Между разными компьютерами и даже разными процессами одного компьютера нет единого адресного пространства и нет возможности передавать объект по ссылке. Поэтому сериализация является единственным способом взаимодействия между этими процессами. Сериализация позволяет представить объект в некоторой промежуточной форме, например в виде xml, передать эту промежуточную форму заданному процессу заданного компьютера и обратно десериализовать объект в вид, пригодный для программного использования.
Свойство замкнутости позволяет объекту переноса данных обеспечить необходимый уровень целостности, т.к. если бы какая-либо его часть ссылалась на другие объекты, то после переноса и десериализации эта ссылка стала бы недействительной, из чего следовало бы, что и сам объект переноса данных был бы непригоден для дальнейшего использования. Свойство замкнутости не запрещает иметь ссылки внутри объекта переноса данных, т.к. объект сериализуется/десериализуется как единой целое и механизм сериализации обеспечивает правильное преобразование ссылок внутри объекта переноса данных.
Механизм XDTO позволяет определять объекты переноса данных, которые могут образовывать строгую иерархию и могут сериализоваться в XML. Эти свойства позволили использовать объекты XDTO в качестве параметров и возвращаемых значений операций web-сервисов.
Все типы данных XDTO подразделяются на типы-значения и типы-объекты. Типы-значения позволяют определять простые типы, например, строки, числа, даты, булевы значения и т.д. Типы-объекты позволяют определять сложные типы, такие как структуры и массивы. Рассмотрим более подробно, как задавать с помощью XDTO некоторые характерные типы.
Строки
Строки моделируются типами-значениями. Строковый тип имеет имя: string . В фигурных скобках здесь задается пространство имен типа. В XDTO как и в XML схеме, на которой он основан, все типы имеют пространство имен и локальное имя.
Для создания строкового значения нужно:
Строка при передаче представляется в виде текста xml тега:
Следует учесть, что строки конвертируются в UTF-8 при сериализации.
Целые числа
Целые числа моделируются типами-значениями. Целочисленный тип имеет имя: int .
Для создания целочисленного значения нужно:
Число при передаче представляется в виде текста xml тега:
Дробные числа
Дробные числа моделируются типами-значениями. Дробный тип с фиксированной точкой имеет имя: decimal , дробный тип с плавающей точкой имеет имя: float , дробный тип с плавающей точкой двойной точности имеет имя: double .
Для создания дробного значения нужно:
Число при передаче представляется в виде текста xml тега:
Даты моделируются типами-значениями. Тип даты без времени имеет имя: date , тип времени без даты имеет имя: time , тип даты и времени имеет имя: dateTime .
Для создания значения даты нужно:
Число при передаче представляется в виде текста xml тега:
Лексическое представление даты задается в формате:
Временная зона может быть не указана.
Лексическое представление времени задается в формате:
Временная зона может быть не указана.
Лексическое представление даты вместе со временем задается в формате:
Дата от времени разделяется символом T . Временная зона может быть не указана.
Структуры
Структуры моделируются типами-объектами. Перед тем как использовать структуру необходимо создать пакет XDTO, описываающий тип-объект структуры (например, через редактор XDTO). Тип-объект может содержать свойства, котрые соответствуют элементам структуры. Каждое свойство характеризуется уникальным именем и типом. Тип свойства может быть как типом-значением, так и типом-объектом.
Например, для создания структуры Номенклатура из демо-конфигурации Web-Сервисы нужно:
Структура при передаче представляется в виде xml структуры:
Массивы
Массивы моделируются свойствами типов-объектов. Тип массива нельзя создать напрямую, но на определенном свойстве типа-объекта можно указать минимальное количество и максимальное количество элементов массива. Если оба значения равны 1 , то это единичное свойство, если максимальное количество больше 1 , то - множественное свойство. Свойства-массивы реализованы в XDTO через СписокXDTO.
Например, для создания массива номенклатур, определенного в свойстве Элементы структуры НоменклатураГруппа из демо-конфигурации Web-Сервисы нужно:
Массив при передаче представлятся в виде xml структуры:
Рассмотрим, как создавать типы и элементы в случае клиента web-сервиса и в случае сервера web-сервиса.
Каждый клиентский прокси (клиентская часть web-сервиса - объект WSПрокси ) содержит ссылку на фабрику XDTO, которая может использоваться для создания объектов и значений XDTO для передачи в качестве параметров и возвращаемых значений операций web-сервисов. Заметим, что глобальная XDTO фабрика (получаемая через свойство глобального контекста ФабрикаXDTO) не может быть использована для создания объектов и значений для передачи через прокси, даже если она содержит типы с такой же структурой и именами. Эти типы все равно будут считаться несовместимыми с типами данных web-сервиса.
Каждая реализация веб-сервиса (серверная часть web-сервиса) может использовать глобальную XDTO фабрику (получаемую через свойство глобального контекста ФабрикаXDTO) для создания объектов и значений web-сервиса.
Механизм XDTO
Аббревиатура 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:
при попытке добавить - пишет какую-то белиберду.
вопрос:
как прописать в пакете что обект является списокс хдто?
Добавлено через 50 секунд
прошу прощения, за пропуски букв это клава дефендер беспроводная буквы жует.
не берите клавы дефендер беспроводные.
очен неудобная.
и не поменять.
Помощь в написании контрольных, курсовых и дипломных работ здесь
Описать функцию, которая будет проверять входит ли список l1 в список l2
Здравствуйте, нужно Описать функцию, которая будет проверять входит ли список l1 в список l2. Ни.
Описать функцию, которая формирует список Common, включив в него элементы, ко-торые входят одновременно в список М1 и М2
Описать функцию, которая формирует список Common, включив в него элементы, ко-торые входят.
Описать картотеку в бюро обмена квартир, которая организована как линейный список
Картотека в бюро обмена квартир организована как линейный список. Сведения о каждой квартире.
вот как это узнать самому, это невозможно догадаться ))
1c 7.7 Xdto
Здравствуйте! Скажите пожалуйста возможно ли при помощи XDTO цеплять данные из 1С 7.7. Если.
Подскажите с Xdto
Здравствуйте! Прошу помочь знатоков с XDTO. Вопрос номер один- как выгрузить в XML и загрузить из.
Выгрузка посредством xdto
всем привет необходимо выгрузить всех контрагентов в xml. часть кода КонтрагентыТип=.
XDTO под Битрикс
Люди, у кого есть Битрикс и модуль обмена, помогите, пожалуйста. Как мне кажется, я нашел место.
xdto загрузка xml
Доброго времени суток! Столкнулся с проблемой загрузки xml-файла в 1С. Файл создается другой.
Работа с фабрикой XDTO
Добрый вечер. Необходимо выгрузить xml файл из конфигурации следующего вида: <?xml.
Читайте также: