mcpField
X
xdto-info

xdto-info

github.com/nikolay-shirokov开发74143 次安装今天更新
代码仓库

关于 xdto-info

xdto-info 是面向 1C XDTO 开发者的 PowerShell 技能,可按 1C 术语梳理包和类型结构,显示必填属性、取值限制及类型引用关系。

主要功能

  1. 01列出配置包及包内容
  2. 02查看类型属性与限制
  3. 03按指定深度展开嵌套对象
  4. 04仅筛选必填属性
  5. 05查找引用某类型的类型
  6. 06将结果写入文件

适用场景

  1. 01根据 namespace 和类型定位包
  2. 02构造 XDTO 值前核对必填字段
  3. 03修改类型前检查引用关系

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nikolay-shirokov/cc-1c-skills --skill xdto-info

安装后在 Claude Code 中输入/xdto-info确认已加载。

附带文件scripts/xdto-info.ps1scripts/xdto-info.py

README 原文English

来自项目 README

README 暂无中文译文,以下为英文原文;中文介绍见上方。

/xdto-info — Анализ структуры пакета XDTO

Показывает структуру типа в терминах 1С: какой тип значения присваивать, что обязательно, где нужен вложенный объект, какие значения допустимы. Заменяет чтение Package.bin или XSD с ручным переводом xs:decimal → Число и lowerBound="0" → необязательный.

Параметры

ПараметрОбязательныйОписание
PackagePathдаКаталог пакета либо корень исходников конфигурации. Псевдоним — -Path
NamespaceнетВыбрать пакет по пространству имён (когда путь — корень исходников)
PackageнетВыбрать пакет по имени объекта метаданных
NameнетИмя типа. Без выбранного пакета ищется по всей конфигурации
DepthнетГлубина разузлования вложенных объектов. По умолчанию 1
RequiredOnlyнетОставить только обязательные свойства — скелет для «заполни обязательное». Необязательный объект уходит вместе со своим содержимым
Modeнетused-by — показать, кто ссылается на тип
Limit / OffsetнетПагинация. По умолчанию 150 строк
OutFileнетЗаписать результат в файл (UTF-8 BOM)
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-info.ps1" -PackagePath "<путь>"

Что показывает

Точка входа определяется по пути: корень исходников — список пакетов, каталог пакета — его состав.

ВызовРезультат
-PackagePath srcвсе пакеты конфигурации: имя, число типов, namespace
-PackagePath src/XDTOPackages/ОбменСБанкомимпорты, точки входа, списки типов
... -Name ПлатежныйДокументструктура типа для заполнения
... -Name ПлатежныйДокумент -Depth 3то же с раскрытием вложенных объектов
... -Mode used-by -Name СуммаТипкто ссылается на тип, включая соседние пакеты

Когда известны namespace и тип, но не имя пакета

Так бывает чаще всего: namespace и имя типа видны в коде или в образце XML, а как называется пакет — нет. Вызов повторяет строку, от которой отталкиваешься:

# ФабрикаXDTO.Тип("urn:1C.ru:ClientBankExchange", "ПлатежныйДокумент")
... -PackagePath src -Namespace "urn:1C.ru:ClientBankExchange" -Name ПлатежныйДокумент

Если известно только имя типа — укажи -Name и корень исходников: тип найдётся по всем пакетам. При нескольких совпадениях навык покажет, где именно, чтобы уточнить.

Что в выводе

Свойства показаны так, как их предстоит заполнять в коде: тип значения — в нотации 1С и с учётом ограничений (Строка(6), Число(18,2)), обязательность и коллекции — флагами, для перечислимых типов перечислены допустимые значения. Непомеченное свойство необязательно.

Обозначения, которые сами по себе неочевидны, навык поясняет прямо в выводе — и только те, что в нём встретились.

Типичный workflow

  1. /xdto-info src — какие пакеты есть
  2. /xdto-info src -Namespace "<URI>" — точки входа и типы пакета
  3. /xdto-info src -Namespace "<URI>" -Name <Тип> -Depth 2 — структура для кода
  4. Перед правкой типа: -Mode used-by -Name <Тип> — кого затронет

Нужна сама XML-схема, а не сводка, — это /xdto-decompile.

评论

支持 Markdown