Skip to content
Back to skills

1c Xdto Compile

ASecurity

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

  • 73 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentsshellbash

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add Desko77/claude-code-skills-1c --skill 1c-xdto-compile --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1c Xdto Compile?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1c Xdto Compile
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/desko77-1c-xdto-compile/badge)](https://www.skillsdirectory.com/skills/desko77-1c-xdto-compile)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 1c-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`.

Files in this skill

  • SKILL.md7 KB
  • scripts/xdto-compile.ps150 KB
  • scripts/xdto-compile.py51.8 KB
  • xsd-reference.md5.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.