Автоматическое создание XSD-файла по выбранным типам объектов конфигурации для загрузки в XDTO пакет в 1С 8.3




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

Данная обработка пригодится тем, кому нужно создать WEB-сервис который должен возвращать некоторые реквизиты для выбранного списка объектов метаданных. Например, нужны только:
— Наименование, Код, ИНН и КПП из Контрагентов;
— Наименование, Дата и Номер из Договоров;
— Документы Поступления НМА со списком принятых НМА;
— Документы Принятие к Учету НМА;

XML-схему всей конфигурации можно выгрузить в XSD-файл, а потом вычищать его, но это долго и неэффективно. К тому же в любой момент к документам НМА могут добавить ОС, а потом еще захотят Поступления номенклатуры и снова придется заниматься ручным трудом.

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

Порядок работы с обработкой:
1. Открываем обработку и добавляем в список необходимые типы:

2. Для каждого типа выбираем, какие реквизиты (включая стандартные и реквизиты табличных частей) нужно выгружать. Если нужны все реквизиты, то можно воспользоваться кнопками на командной панели, а если все реквизиты всех типов, то можно воспользоваться подменю «Для всех типов»

3. После этого достаточно выбрать папку выгрузки XSD-файла и нажать кнопку «Создать схему XSD» и в выбранной папке будет создан файл «XSD_schema.xsd». Если данный файл там уже есть – он будет перезаписан. А если Вы хотите, чтобы файл имел другое имя – задайте полный путь, включая ИмяФайла.xsd.
На скриншоте для выгрузки выбран реквизит СтранаРегистрации, который имеет тип Справочник.СтраныМира. Данный тип не выбран в Списке выгружаемых типов, поэтому по умолчанию такие реквизиты выгружаются с типом «anyType». Если Вы все же хотите, чтобы такие ссылочные типы были указаны верно, но не хотите выбирать множество мелких справочников типа Страны, Валюты, Банки и т.п. можно установить галочку «Создавать рекурсивную структуру подчиненных объектов». В этом случае справочник СтраныМира будет выгружен полностью (включая все реквизиты) и для каждого реквизита будет произведено рекурсивное добавление его ссылочных типов.

4. В ветке XDTO пакетов конфигуратора нажимаем  Правой кнопкой —  Импорт XML-схемы  и выбираем созданный XSD-файл.
В моей выгрузке я не устанавливал галочку «Создавать рекурсивную структуру подчиненных объектов», поэтому реквизит СтранаРегистрации имеет тип «anyType».

Данная обработка основана на публикации: infostart.ru/public/615256/
И содержит в себе множество доработок:
— Выгружаемые типы можно указывать списком. Данный список – не список ссылок, а список описаний типов.
— Расширены типы, которые можно указывать: Справочники, Документы, Плана видов характеристик и даже Плана обмена.
— В список реквизитов добавлены стандартные реквизиты (Ссылка, Дата, Код, Наименование и др.) и их выгрузку также можно отключить.
— Опциональная возможность включать рекурсивный обход типов, не указанных в списке выгружаемых, но присутствующих в реквизитах.
— Доработаны случаи, когда реквизит является ПланомСчетов, ПланомВидовХарактеристик, ПланыВидовРасчета или ПланомОбмена.
— Исправлены мелкие ошибки.
— Для решения собственной задачи Перечисления было решено выгружать с типом строка и не добавлять в его как отдельный тип в XSD-схему. Если кому-то нужна версия с выгрузкой Перечислений с типом EnumRef – напишите в комментарии, доработаю.

Протестировано на платформе 8.3.11.2899, но должно работать на любой 8.3.*. Если возникли проблемы с другой версией платформы, а также обо всех ошибках и пожеланиях пишите в комментариях.
И еще не забываем ставить звездочки: Вам не сложно – мне приятно.

7 Comments

  1. fr13

    Идея хорошая, но какой практический смысл? Судя по скриншотам, такой пакет XDTO все равно придется дорабатывать руками. Может Вы скажите, где вы использовали, полученный таким образом ПакетXDTO? И еще интересно — что у Вас добавилось в дериктивы импорта?

    Reply
  2. w.r.

    Очень полезная штука для создания обменов! Спасибо!

    Reply
  3. mityushov.vv

    Добрый день, вот я делал что то подобное https://infostart.ru/public/615256/, но только у меня выгружаются все метаданные рекурсивно по выбранным реквизитам объекта, может будет полезной и для вас то же.

    Reply
  4. mityushov.vv

    (3) А это на основе моей обработки то и сделано)))) молодец

    Reply
  5. jobkostya1c8

    Вот , дельная вещь. Надо запомнить и проверять.

    Reply
  6. mvxyz

    Полезный инструмент. Спасибо!

    Reply
  7. nkroshko

    Добрый день, а если в объекте есть реквизит составного типа, например с типами СправочникСсылка.Организации и СправочникСсылка.Контрагенты, то при установленном флаге «Создавать рекурсивную структуру подчиненных объектов» как будет формироваться схема? Будут ли в нее добавлены справочники Организации и Контрагенты? И какой тип при этом будет иметь реквизит со составным типом?

    Reply

Leave a Comment

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