что такое xdto в 1с

Использование объектов XDTO в web-сервисах

Механизм XDTO представляет собой гибкое средство моделирования данных, которое широко используется в технологии web-сервисов 1С:Предприятия. В этой статье мы рассмотрим, как с использованием XDTO можно задавать различные типы данных и как их применять в web-сервисах.

Способность сериализоваться/десериализоваться в формат переноса данных позволяет объекту переноса данных мигрировать с одного компьютера на другой. Между разными компьютерами и даже разными процессами одного компьютера нет единого адресного пространства и нет возможности передавать объект по ссылке. Поэтому сериализация является единственным способом взаимодействия между этими процессами. Сериализация позволяет представить объект в некоторой промежуточной форме, например в виде xml, передать эту промежуточную форму заданному процессу заданного компьютера и обратно десериализовать объект в вид, пригодный для программного использования.

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

Механизм XDTO позволяет определять объекты переноса данных, которые могут образовывать строгую иерархию и могут сериализоваться в XML. Эти свойства позволили использовать объекты XDTO в качестве параметров и возвращаемых значений операций web-сервисов.

Все типы данных XDTO подразделяются на типы-значения и типы-объекты. Типы-значения позволяют определять простые типы, например, строки, числа, даты, булевы значения и т.д. Типы-объекты позволяют определять сложные типы, такие как структуры и массивы. Рассмотрим более подробно, как задавать с помощью XDTO некоторые характерные типы.

Строки

Для создания строкового значения нужно:

Строка при передаче представляется в виде текста xml тега:

Следует учесть, что строки конвертируются в UTF-8 при сериализации.

Целые числа

Для создания целочисленного значения нужно:

Число при передаче представляется в виде текста xml тега:

Дробные числа

Для создания дробного значения нужно:

Число при передаче представляется в виде текста xml тега:

Для создания значения даты нужно:

Число при передаче представляется в виде текста xml тега:

Лексическое представление даты задается в формате:

Временная зона может быть не указана.

Лексическое представление времени задается в формате:

Временная зона может быть не указана.

Лексическое представление даты вместе со временем задается в формате:

Структуры

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

Например, для создания структуры Номенклатура из демо-конфигурации Web-Сервисы нужно:

Структура при передаче представляется в виде xml структуры:

Массивы

Например, для создания массива номенклатур, определенного в свойстве Элементы структуры НоменклатураГруппа из демо-конфигурации Web-Сервисы нужно:

Массив при передаче представлятся в виде xml структуры:

Рассмотрим, как создавать типы и элементы в случае клиента web-сервиса и в случае сервера web-сервиса.

Каждая реализация веб-сервиса (серверная часть web-сервиса) может использовать глобальную XDTO фабрику (получаемую через свойство глобального контекста ФабрикаXDTO) для создания объектов и значений web-сервиса.

Источник

1С магия XDTO-пакетов на примере интеграций с ГИС ЖКХ

Есть очень много статей о том, как работать с XSL/XSD из 1С, но все они в стиле: возьмем нашу XSD схему (простую и удбоную) или наш web-сервис и смотрите, как все легко экспортировать или импортировать. А что делать, если нам дали пачку XSD-схем со сложным взаимосвязями и изменять мы них не можем, а работать и поддерживать актуальность схем надо?

Сразу скажу, вопросы шифрования/подписи по ГОСТУ при работе с ГИС ЖКХ за рамками этой статьи и на хабре уже освещались. Хотя без подписей запросы выполнить не удастся.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с
Начнем с простого — скачаем пакет форматов по интеграционному взаимодействию с ГИС ЖКХ, импортируем все xsd схемы из пакета интеграций, наведем порядок переименуем все как нам удобно. В итоге получим как показано на картинке:

Ну а теперь приступим к магии. Попробуем запросить данные из справочника организаций по ОРГН. Это подсистема organizations-registry-common метод exportOrgRegist.

В hcs-organizations-registry-common-service.wsdl указано:

Ну приступим, откроем нужные нам пакеты XDTO. Оказывается, нужные сущности являются не типами, а свойствами, как с этим работать в документации на XDTO в статьях, которые я находил, не описано, поэтому воспользуемся урокам магии:

Начнем с тела exportOrgRegistryRequest.

Напишем функцию для сбора XML-запроса:

В итоге получим запрос:

Ответ от серверов ГИС ЖКХ (СИТ-1):

Как мы видим, ответ напрямую десериализовать не получится, потому что нет такого типа в предложенных xsd схемах. Нам надо как-то пропустить часть тэгов и обработать только область ответа. На эту тему я тоже не нашел информации, но методом проб и ошибок приходим к кусочку магий:

В итоге работать можно с очень сложными xsd схемами через стандартные инструменты платформы. В целом 1С контролируют типизацию и заполнения, бывает чересчур излишне, особенно когда внутри свойства пакета используется базовый тип другого пакета, но в любом случае тип нужно привести к локальному из-за другого пространства URI. Удобно работать с десериализоваными данными, так как там всю работу на себя берет платформа. Но проверки происходят на этапе выполнения, а при написания кода платформа 1С не предоставляет никаких подсказок и проходится пользоваться сторонними утилитами, и даже при выполнении большая часть элементов находится в состоянии «Неопределено» и даже тип или его свойство можно увидеть только в спецификации.

Источник

XDTO-пакет в 1С: что это такое, как осуществляется обмен и выгрузка данных

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Релиз платформы 1С версии 8.1 открыл для пользователей новый механизм, получивший название XML Data Transfer Objects. Его использование позволяет упростить конвертацию информации из учетной программы в соответствии со стандартной конфигурацией, обеспечивающей возможность чтения документа другими приложениями и сводящей к минимуму вероятность возникновения ошибок обработки. Функциональная задача инструмента — помощь в создании файлов, формат и структура которых будет понятна как юзеру, так и машинному алгоритму. Давайте разберемся, что такое пакет XDTO в 1С 8,1, схему выгрузки в таблицу значений, обмена и записи в XML, и почему это просто находка для тех, кто не слишком хорошо знаком с нюансами работы в нескольких системных программах.

Общее представление

Начнем с того, что рассматриваемый механизм, расшифровка названия которого переводится как «XML-объекты переноса данных», не относится к числу международных стандартов. Фактически это собственное детище разработчиков платформы, так что за ее пределами вам вряд ли доведется встретить аналогичные примеры. Перечень свойств, которыми обладает ПО, обуславливается спецификой взаимодействия с учетной базой — навык создания и работы с объектами типа пакеты XDTO в 1С пригодится только тем, кто постоянно работает с программой.

Функциональные возможности

В перечень опций, предлагаемых инструментом, входят:

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

Готовые решения для всех направлений

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Мобильность, точность и скорость пересчёта товара в торговом зале и на складе, позволят вам не потерять дни продаж во время проведения инвентаризации и при приёмке товара.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Ускорь работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Повысь точность учета имущества организации, уровень контроля сохранности и перемещения каждой единицы. Мобильный учет снизит вероятность краж и естественных потерь.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Повысь эффективность деятельности производственного предприятия за счет внедрения мобильной автоматизации для учёта товарно-материальных ценностей.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Исключи ошибки сопоставления и считывания акцизных марок алкогольной продукции при помощи мобильных инструментов учёта.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Получение сертифицированного статуса партнёра «Клеверенс» позволит вашей компании выйти на новый уровень решения задач на предприятиях ваших клиентов..

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Используй современные мобильные инструменты в учете товара и основных средств на вашем предприятии. Полностью откажитесь от учета «на бумаге».

Типы, объекты и фабрики

Количество программистов, по долгу службы создающих различные файлы формата XML, вряд ли поддается подсчету. А вот вариаций в пространствах имен, используемых в 1С и других программах, существенно меньше — и в тех случаях, когда в рамках одной информационной системы сталкиваются одинаковые понятия, характеризующие различные показатели, происходит конфликт значений. Как правило, для наименования пространственных объединений используются строки-идентификаторы, структура которых схожа с URL-ссылками — подобные примеры встречаются в любом документе и могут смутить сотрудников, не знакомых со спецификой их происхождения. Подобный формат обеспечивает уникальность и исключает вероятность пересечения двух пространств, содержащих идентичные по общему названию группы объектов.

Расширение XDTO пакета 1С

Главным корневым элементом подсистемы выступают рассматриваемые массивы, от которых разветвляются и множатся все остальные связи. Именно с них и стоит начать рассмотрение предложенной модели данных.

Особенности конфигурации

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

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

Особенности устройства

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

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

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

Интеграция в конфигурацию

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

Повторение значений

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

Сериализация XDTO

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

При этом важно понимать, что для Фабрики 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()», которые обеспечивают возврат готовых элементов, адаптированных к конфигурации системы.

Выгрузка модели данных

Стандартная последовательность действий предусматривает несколько этапов:

Функции XDTO 1С — описание возврата web-сервисов, конвертация, передача и чтение информации — заметно упрощают взаимодействие с платформой и другими системными приложениями. Подобные решения представляют особую значимость для успешной реализации бизнеса, специфика которого предусматривает активную работу с учетными базами. Для тех, кто предпочитает оптимизировать все процессы, создавая эффективный управленческий цикл, стоит также рассмотреть возможности мобильной автоматизации, предлагаемые компанией «Клеверенс» — интеграция Mobile SMARTS на 70% сокращает издержки на проведение рутинных операций по учету товара, и позволяет свести к минимуму ошибки и расхождения, вызванные человеческим фактором.

Источник

Механизм XDTO

Доброго времени суток! В настоящей публикации хочу поделиться опытом изучения и применения XDTO. Изложенное представляет собой конспект проделанной работы. Традиционно вначале условлюсь:

— статья отражает приобретенный самостоятельно опыт и результаты попытки разобраться в тематике, а не является сугубо теоретическим материалом, претендующим на какую-либо «академичность»

— предварительно я не осведомлялся «как это реализовано в типовых»

— возможно имеются более оптимальные реализации и понимание, хотелось бы узнать

Практическая цель изучения заключалась в том, чтобы научиться переносить данные между базами различных конфигураций. Собрал три кейса (состав описан ниже). В конечном счете удалось разобраться как это сделать. Отдельно уточню, не использовал каких-либо примеров, в т.ч. из тиражных решений. Предпринята попытка разобраться на основе знания технологий XML, ознакомления со стандартом XSD и главы 16 руководства. Так сказать, на абордаж, поэтому прошу воспринять материал соответственно. Прикреплено две базы (источник-приемник) и несколько схем, нарисованных мной для структурирования понятого.

Однако реализовать что-то и понять почему это выполняется именно так, не одно и то же. Остались вопросы, вэлком к обсуждению.

1. Схема, т.н. XSD, лежит в основе, загружается во вкладку XDTO-пакеты. Написать ее можно в обычном блокноте, достаточно просто. Формат XSD описывают два увесистых даташита, размещены на сайте консорциума w3c. Спустя некоторое время изучения я понял два обстоятельства: далеко не все возможности стандарта используются платформой и не обязательно уметь создавать схемы вручную (в большинстве случаев пожалуй достаточно будет возможностей, предоставляемых в конфигураторе).

2. Импорт XSD в дерево метаданных. Вот тут меня ожидали первые сюрпризы. Для одного и того же файла XML с данными можно написать более одной XSD, все будут валидировать файл. Но для пакета XDTO нужно знать, что xs:simpleType это подветка «Типы значений», xs:complexType подветка «Типы объектов». При этом, например, оба описания

определят следующий элемент

1С примет корректно схему по второму образцу. Почему, осталось вопросом. Объяснение конечно какое-то должно быть, думаю кроется в стандарте.

3. Общее понимание модели XDTO. Попытался это выразить на рисунке ниже. На данный момент осталось непонятным назначение подветки «Свойства» в пакете (ветка XDTO-пакеты), для каких целей и как ее использовать.

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

4. Работа с типами, фабрикой, организация переноса данных между конфигурациями. Насколько мне стало понятно, одной из основ концепции (с точки зрения интеграции) XML, XSD, XDTO лежит типизация. В конечном счете иерархия какого-либо набора данных сводится к примитивным и/или простым типам. И это, думается, «кошмар» для 1С-ника. Например, когда к нам приходят данные в виде 200-02 в XSD должно быть описано что это: число, строка, значение перечисления. А также, что в нашей системе «Калибр» нужно поместить в реквизит «ДиаметрИзделия» такого-то объекта. Но это еще не все, о чем нужно позаботиться и с чем можно столкнуться. Например вызов

возвращает Неопределено, а вот

уже ожидаемое Тип(«Число»). Коллеги, возможно это понятный результат и кто-то воскликнет «очевидно же!». Но для меня это на данный момент отнесено в категории «знать и учитывать при разработке» и «не понятно, даже могу объяснить почему должно быть по-другому».

5. Перенос данных между двумя разными справочниками, документами. При организации переноса справочник-справочник или документ-документ с реквизитами примитивных и простых типов, без табличных частей, трудностей не возникло. Первый кейс. Вот как выглядел мой пакет:

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Прежде, чем это сделать возник стопор. Как? Оперировать категориями привычной объектная модель данных 1С здесь не получилось. Для понимания, нарисовал такую простенькую схему:

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Что пришлось здесь понимать.

Во-вторых, табличная часть. Разыменование здесь не применимо. Для табличной части создан отдельный тип объекта «Справочник_ФизическиеЛица_КонтактныеСведения», указываемый в качестве типа объекта «КонтактныеСведения». Тогда мозаика сложилась. Не совсем очевидно при подходе «в лоб». Согласитесь, при объектной и запросной техниках работы мы привыкли работать с табличными частями как с неотъемлемой частью объекта. На прикладном уровне так и есть, хотя физически хранится раздельно. Да и в модель типов метаданных, признаю, укладывается ровно. В общем, некоторую заминку у меня вызвало додумывание необходимости оформить табличную часть как отдельный объект, а не пытаться настроить как-то «внутри владельца».

6. Почему все не так наглядно, как при использовании встроенного сериализатора. Все тривиально, когда мы используем «бортовой» сериализатор. Платформа безошибочно запишет/прочитает экземпляр данных справочника, документа и т.д. Когда же мы читаем объект, тип которого (как мы допускаем) отсутствует в дереве метаданных конфигурации, то обо всем нужно заботиться самим. Очередная схема. Нарисовал для наглядности собственного же понимания, использовал как шпаргалку:

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

Последний сюрприз (пора с ними заканчивать) назвал ожидание и реальность. Третий кейс. Пакет:

что такое xdto в 1с. Смотреть фото что такое xdto в 1с. Смотреть картинку что такое xdto в 1с. Картинка про что такое xdto в 1с. Фото что такое xdto в 1с

В этой задаче мне необходимо было решить задачу переноса списков экземпляров базы данных справочника, документа. Ожидание: предполагал, что на транспорт можно будет передавать экземпляры по мере формирования. Реальность: создаем контейнер. Отдельный «списочный» тип с unbounded-свойством, а типом которого уже будет наш объект. Снова типизация.

Поставленные задачи удалось решить. Кому будет интересно, отправлю пары источник-приемник (в dt) по трем кейсам. Пишите в телегу. Для чего публикую? Хотелось бы поделиться опытом, а еще больше получить его. Поэтому прошу все дельные комментарии, конструктивные советы, подтверждения/опровержения, сильные/слабые стороны в комментариях. Материал имеется еще. Внимания заслуживает механика выгрузки/загрузки, кодирование, приемы. Возможно, кто-то поделится этим в обсуждениях.

Источник

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

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