К основному содержанию
скилл CX Codex

xdto-compile — скилл для Claude Code: что делает и как установить

Собирает пакет XDTO 1С из XSD и добавляет его в исходники конфигурации. Пригодится для обмена, интеграций и веб-сервисов.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills
Открыть на GitHub

Что делает xdto-compile

Скилл принимает XML-схему через -XsdPath или -Xsd, затем создаёт XDTOPackages/<Имя>.xml, Ext/Package.bin и запись в Configuration.xml. Имя, синоним и комментарий можно взять из xs:appinfo или задать параметрами. Флаг -Force разрешает перезапись существующего пакета.

Внутри используется PowerShell-скрипт, а результат можно проверить командами /xdto-info, /xdto-decompile и /xdto-validate. Скилл выводит предупреждения, когда конструкции XSD переносятся приближённо: например, xs:choice упрощается до последовательности, а кратность частицы не сохраняется.

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

Какие задачи решает

  • собрать пакет XDTO из файла XSD
  • добавить пакет в Configuration.xml
  • задать имя и синоним объекта через схему
  • проверить разрешение типов между пакетами
  • пересобрать изменённую схему с -Force

Примеры запросов агенту

  • Собери пакет XDTO из bank.xsd в каталоге src с именем «ОбменСБанком».
  • Выполни /xdto-compile -XsdPath <файл> -OutputDir <каталог-исходников> и разберись с предупреждениями.
  • Пересобери пакет из fss.xsd в src, разрешив перезапись через -Force.

Как установить xdto-compile

1Через маркетплейс плагинов

/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills

Команда ставит плагин 1c-skills целиком, со всеми его скиллами

2Через Skills CLI (Vercel)

npx skills add Nikolay-Shirokov/cc-1c-skills --skill xdto-compile -a claude-code

3Вручную: положить файлы

~/.claude/skills/xdto-compile/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/xdto-compile/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о xdto-compile

Как установить xdto-compile в Claude Code?

Добавь маркетплейс командой /plugin marketplace add Nikolay-Shirokov/cc-1c-skills, затем установи плагин командой /plugin install 1c-skills@cc-1c-skills.

Что делает xdto-compile?

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

Что произойдёт с xs:include и xs:import?

xs:include не переносится: схему нужно собрать отдельным пакетом и заменить его на import. Импорт разрешается по namespace среди пакетов конфигурации или расширения.

Исходный текст

SKILL.md · MIT
---
name: xdto-compile
description: Создание пакета XDTO 1С из XML-схемы (XSD). Используй когда нужно добавить в конфигурацию пакет XDTO — под обмен, интеграцию, веб-сервис или внешний XML-формат
argument-hint: -XsdPath <файл.xsd>|-Xsd <схема> -OutputDir <каталог-исходников> [-Name <имя>] [-Synonym <синоним>] [-Comment <текст>] [-Force]
allowed-tools:
  - Bash
  - Read
  - Glob
---

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

Собирает пакет 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
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-compile.ps1" -XsdPath "<схема.xsd>" -OutputDir "<каталог-исходников>"
```

Примеры:
```powershell
... -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`
у отдельного свойства. Они пишутся атрибутами из пространства имён модели:

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

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

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

```xml
<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`.

© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills

Темы и платформы

Каталог скиллов SKILL.md →

Из того же набора32

support-edit Меняет состояние поддержки конфигурации 1С и отдельных объектов. Нужен, когда объект закрыт для редактирования или его требуется снять с поддержки. CX Codex 38установок form-decompile Превращает Form.xml управляемой формы 1С в JSON-черновик для form-compile. Нужен для создания формы по образцу и структурного рефакторинга. CX Codex 38установок db-dump-dt Скилл выгружает информационную базу 1С целиком в DT-файл: конфигурация плюс данные. Годится для бэкапа или точки отката перед обновлением. CX Codex 38установок db-load-dt Загружает DT-файл в существующую информационную базу 1С вместе с конфигурацией и данными. Нужен для восстановления базы. CX Codex 37установок meta-decompile Читает XML объекта метаданных 1С и выдаёт компактный JSON в формате meta-compile. Пригодится, когда новый объект проще собрать по образцу существующего, чем писать DSL с нуля. CX Codex 36установок db-repo Скилл управляет хранилищем конфигурации 1С: захватывает объекты, получает изменения и помещает правки. Работает через команды Claude Code и Codex. CX Codex 30установок v8-xsd-fetch Скачивает XSD-схемы XML-выгрузки 1С по версиям и сохраняет их в каталог проекта. Нужен для проверки выгрузки по XSD и просмотра доступных версий. CX Codex 17установок 1c-skills Автоматизирует разработку для 1С:Предприятие 8.3: генерирует XML метаданных, собирает внешние обработки, публикует базы и гоняет тесты в веб-клиенте. CX Codex ★ 730звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой