/xdto-compile - Создание пакета XDTO из XML-схемы
SkillDev toolsCreate 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.
No other account needed.
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/cursor-1c-skills 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
- Получить XSD от контрагента (или выгрузить схему существующего пакета:
/xdto-decompile) /xdto-compile -XsdPath <файл> -OutputDir <каталог-исходников>- прочитать предупреждения/xdto-validate <каталог-исходников>/XDTOPackages/<Имя>- убедиться, что типы разрешились/db-load-xml+/db-update
Правка существующего пакета: точечно - /xdto-edit; переработать схему целиком -
/xdto-decompile → правка XSD → /xdto-compile -Force.
Signals
- GitHub stars
- 57
- Forks
- 13
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
x-1c-xdto-compile-desko77- Source
- github.com/desko77/cursor-1c-skills