From 0aa93424077a65af6d27b8fcd5ab2ec00373a463 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 26 Jul 2026 10:46:59 +0300 Subject: [PATCH] =?UTF-8?q?docs(xdto-compile,xdto-decompile,xdto-validate)?= =?UTF-8?q?:=20=D0=BE=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20=D0=B8=20=D1=83=D0=BC=D0=BE?= =?UTF-8?q?=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В таблицах параметров не было видно, что обязательно, а что нет, и какие значения подставляются по умолчанию. Добавлена колонка «Обязательный» (по образцу form-edit), умолчания расписаны, отмечена взаимоисключающая пара -XsdPath/-Xsd, псевдонимы -Path и поведение без -Force. Сверил документацию с поведением скриптов: хеш-таблица в -Synonym работает только в PS-порте, в Python её нет — из инструкции убрана, многоязычный синоним задаётся блоком xs:appinfo, который поддерживают оба порта. Убран последний след нашего обсуждения формата («отдельного DSL нет» — читателю не с чем сравнивать), добавлено, где посмотреть уже собранные пакеты, и точное имя файла справочника аннотаций. Co-Authored-By: Claude Opus 5 (1M context) --- .claude/skills/xdto-compile/SKILL.md | 32 +++++++++++++------------- .claude/skills/xdto-decompile/SKILL.md | 16 ++++++------- .claude/skills/xdto-validate/SKILL.md | 14 +++++------ 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.claude/skills/xdto-compile/SKILL.md b/.claude/skills/xdto-compile/SKILL.md index 8bed895d..b3183baa 100644 --- a/.claude/skills/xdto-compile/SKILL.md +++ b/.claude/skills/xdto-compile/SKILL.md @@ -1,7 +1,7 @@ --- name: xdto-compile description: Создание пакета XDTO 1С из XML-схемы (XSD). Используй когда нужно добавить пакет XDTO в конфигурацию — для обмена, интеграции, веб-сервиса, разбора внешнего XML-формата -argument-hint: -XsdPath <файл.xsd> -OutputDir <каталог-исходников> [-Name <имя>] [-Synonym <синоним>] [-Comment <текст>] [-Force] +argument-hint: -XsdPath <файл.xsd>|-Xsd <схема> -OutputDir <каталог-исходников> [-Name <имя>] [-Synonym <синоним>] [-Comment <текст>] [-Force] allowed-tools: - Bash - Read @@ -13,20 +13,19 @@ allowed-tools: Собирает пакет XDTO по XML-схеме: `XDTOPackages/<Имя>.xml`, `XDTOPackages/<Имя>/Ext/Package.bin` и регистрацию в `Configuration.xml`. -Вход — обычная XSD. Отдельного формата описания нет: пиши схему так, как её пишут -везде, остальное навык сделает сам. +Вход — обычная XML-схема, писать её нужно так же, как для любого другого инструмента. ## Параметры -| Параметр | Описание | -|----------|----------| -| `XsdPath` | Путь к файлу XML-схемы | -| `Xsd` | Схема строкой, вместо `-XsdPath` | -| `OutputDir` | Каталог исходников конфигурации или расширения — там, где лежит `Configuration.xml` | -| `Name` | Имя объекта метаданных. По умолчанию — из `xs:appinfo`, иначе имя файла XSD | -| `Synonym` | Синоним: строка или хеш-таблица `@{ru='…'; en='…'}` | -| `Comment` | Комментарий | -| `Force` | Перезаписать существующий пакет | +| Параметр | Обязательный | Описание | +|----------|--------------|----------| +| `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 "<каталог-исходников>" @@ -64,10 +63,11 @@ XSD выразительнее модели XDTO. Всё, что не перен ## Зависимости между пакетами `` разрешается по namespace среди пакетов конфигурации -или расширения. -Если пакета с таким пространством имён нет, платформа при загрузке молча подменит тип -на `xs:anyType` — без ошибки. Собирай сначала зависимости, потом зависящий пакет, -и проверяй результат через `/xdto-validate`. +или расширения. Если пакета с таким пространством имён нет, платформа при загрузке +молча подменит тип на `xs:anyType` — без ошибки. Собирай сначала зависимости, потом +зависящий пакет, и проверяй результат через `/xdto-validate`. + +Какие пакеты уже собраны, видно в `ChildObjects` файла `Configuration.xml`. ## Что XSD выразить не может diff --git a/.claude/skills/xdto-decompile/SKILL.md b/.claude/skills/xdto-decompile/SKILL.md index 4ed44ec6..15894425 100644 --- a/.claude/skills/xdto-decompile/SKILL.md +++ b/.claude/skills/xdto-decompile/SKILL.md @@ -15,10 +15,10 @@ allowed-tools: ## Параметры -| Параметр | Описание | -|----------|----------| -| `PackagePath` | Каталог пакета, путь к `Ext/Package.bin` или к `<Имя>.xml` объекта метаданных | -| `OutFile` | Записать схему в файл. Без него — вывод в stdout | +| Параметр | Обязательный | Описание | +|----------|--------------|----------| +| `PackagePath` | да | Каталог пакета, путь к `Ext/Package.bin` или к `<Имя>.xml` объекта метаданных. Псевдоним — `-Path` | +| `OutFile` | нет | Записать схему в файл (UTF-8 с BOM). Без него — вывод в stdout | ```powershell powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-decompile.ps1" -PackagePath "<путь>" @@ -40,13 +40,13 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-decompile.ps1" В схеме могут встретиться атрибуты с префиксом `xdto:` — так записано то, что XML Schema выразить не может (например `nillable` у атрибута). Схема при этом остаётся валидной, валидаторы такие атрибуты игнорируют. Трогать их обычно не нужно; смысл -каждого описан в справочнике навыка `/xdto-compile`. +каждого описан в `xsd-reference.md` навыка `/xdto-compile`. ## Передача схемы наружу -Полученную XSD можно отдавать контрагенту как есть. В отличие от команды -«Экспорт XML-схемы» в Конфигураторе, навык не теряет `nillable` у свойств-атрибутов -и не пишет `form` на глобальных объявлениях, где спецификация XSD его не допускает. +Полученную XSD можно отдавать контрагенту как есть — она валидна и не теряет +данных пакета. Штатная команда «Экспорт XML-схемы» в Конфигураторе для этого +хуже: она теряет `nillable` у свойств-атрибутов. ## Верификация diff --git a/.claude/skills/xdto-validate/SKILL.md b/.claude/skills/xdto-validate/SKILL.md index ac56c80c..5b346e02 100644 --- a/.claude/skills/xdto-validate/SKILL.md +++ b/.claude/skills/xdto-validate/SKILL.md @@ -15,13 +15,13 @@ allowed-tools: ## Параметры -| Параметр | Описание | -|----------|----------| -| `PackagePath` | Каталог пакета, `Ext/Package.bin` или `<Имя>.xml` объекта метаданных | -| `ConfigDir` | Корень исходников. По умолчанию определяется по расположению пакета | -| `Detailed` | Показывать успешные проверки, а не только проблемы | -| `MaxErrors` | Остановиться после N ошибок (по умолчанию 20) | -| `OutFile` | Записать отчёт в файл | +| Параметр | Обязательный | Описание | +|----------|--------------|----------| +| `PackagePath` | да | Каталог пакета, `Ext/Package.bin` или `<Имя>.xml` объекта метаданных. Псевдоним — `-Path` | +| `ConfigDir` | нет | Корень исходников. По умолчанию определяется по расположению пакета | +| `Detailed` | нет | Показывать успешные проверки, а не только проблемы | +| `MaxErrors` | нет | Остановиться после N ошибок. По умолчанию 20 | +| `OutFile` | нет | Записать отчёт в файл | ```powershell powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-validate.ps1" -PackagePath "<путь>"