/xdto-compile - Создание пакета XDTO из XML-схемы

SkillAI & models

Create a 1C XDTO package from an XML schema (XSD). Use when you need to add an XDTO package to the configuration - for data exchange, integration, web services, or an external XML format

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the /xdto-compile - Создание пакета XDTO из XML-схемы skill

What this skill tells your AI

The instructions your AI receives, as published by desko77/claude-code-skills-1c in skills/1c-xdto-compile/SKILL.md and read by ahel’s review.

Собирает пакет XDTO по XML-схеме: XDTOPackages/<Имя>.xml, XDTOPackages/<Имя>/Ext/Package.bin и регистрацию в Configuration.xml.

Вход - обычная XML-схема, писать ее нужно так же, как для любого другого инструмента.

Параметры

ПараметрОбязательныйОписание
XsdPathодин из двухПуть к файлу XML-схемы. Псевдоним - -Path
Xsdодин из двухСхема строкой, вместо -XsdPath
OutputDirдаКаталог исходников конфигурации или расширения - там, где лежит Configuration.xml
NameнетИмя объекта метаданных. По умолчанию - из xs:appinfo, иначе имя файла XSD, санированное под идентификатор 1С
SynonymнетСиноним (строка). По умолчанию - из xs:appinfo, иначе имя пакета. Для нескольких языков задавай синоним в схеме, блоком xs:appinfo
CommentнетКомментарий. По умолчанию - из xs:appinfo
ForceнетПерезаписать существующий пакет. Без него навык откажется затирать уже собранный пакет
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-compile.ps1" -XsdPath "<схема.xsd>" -OutputDir "<каталог-исходников>"

Примеры:

... -XsdPath bank.xsd -OutputDir src -Name ОбменСБанком -Synonym "Обмен с банком"
... -XsdPath fss.xsd  -OutputDir src -Force

Читай предупреждения

XSD выразительнее модели XDTO. Все, что не переносится один в один, навык переносит приближенно и пишет об этом:

Предупреждения (2) - конструкции XSD без точного соответствия в модели XDTO:
  ! Документ : вложенная xs:choice уплощена в последовательность - выбор одного из вариантов не сохранен
  ! Документ : кратность на вложенной частице (<xs:sequence minOccurs/maxOccurs>) не выражается в модели XDTO

Такое сообщение означает, что пакет собран, но схема упрощена. Если упрощение недопустимо - меняй схему (например, разноси варианты xs:choice по разным типам), а не игнорируй.

Что переносится приближенно: вложенные xs:sequence/xs:choice (уплощаются в плоский список свойств), xs:all (становится последовательностью), кратность на частице, substitutionGroup, xs:key/keyref/unique, xs:redefine.

xs:group и xs:attributeGroup раскрываются по ссылке - их содержимое попадает в тип. xs:include игнорируется: зависимости в XDTO разрешаются только по namespace, поэтому включаемую схему нужно собрать отдельным пакетом и заменить include на import.

Посмотреть, что получилось

Модель пакета лежит в Ext/Package.bin. Несмотря на расширение, это текстовый XML, но читать его напрямую обычно незачем: состав собранного пакета показывает /xdto-info, а полную схему - /xdto-decompile.

Зависимости между пакетами

<xs:import namespace="..."/> разрешается по namespace среди пакетов конфигурации или расширения. Если пакета с таким пространством имен нет, платформа при загрузке молча подменит тип на xs:anyType - без ошибки. Собирай сначала зависимости, потом зависящий пакет, и проверяй результат через /xdto-validate.

Какие пакеты уже собраны, видно в ChildObjects файла Configuration.xml.

Что XSD выразить не может

Две вещи модель XDTO умеет, а XML Schema - нет: nillable у атрибута и qualified у отдельного свойства. Они пишутся атрибутами из пространства имен модели:

<xs:attribute name="Представление" type="xs:string"
              xmlns:xdto="http://v8.1c.ru/8.1/xdto" xdto:nillable="true"/>

Схема остается валидной - валидаторы такие атрибуты игнорируют. Полный список и таблица соответствий XSD ↔ XDTO - в xsd-reference.md.

Свойства объекта метаданных можно задать прямо в схеме:

<xs:annotation>
    <xs:appinfo>
        <xdto:package xmlns:xdto="http://v8.1c.ru/8.1/xdto">
            <xdto:name>ОбменСБанком</xdto:name>
            <xdto:synonym lang="ru">Обмен с банком</xdto:synonym>
        </xdto:package>
    </xs:appinfo>
</xs:annotation>

Типичный workflow

  1. Получить XSD от контрагента (или выгрузить схему существующего пакета: /xdto-decompile)
  2. /xdto-compile -XsdPath <файл> -OutputDir <каталог-исходников> - прочитать предупреждения
  3. /xdto-validate <каталог-исходников>/XDTOPackages/<Имя> - убедиться, что типы разрешились
  4. /db-load-xml + /db-update

Правка существующего пакета: точечно - /xdto-edit; переработать схему целиком - /xdto-decompile → правка XSD → /xdto-compile -Force.

Signals

GitHub stars
61
Forks
14
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
x-1c-xdto-compile
Source
github.com/desko77/claude-code-skills-1c