mcpField
M
meta-decompile

meta-decompile

github.com/nikolay-shirokov開発74144 回インストール今日更新
リポジトリ

meta-decompile について

1C メタデータオブジェクトの XML を読み込み、`/meta-compile` 用の JSON 草稿を出力するスキルです。既存オブジェクトを参考に新規オブジェクトを作る用途向けで、UUID、モジュール、フォーム、レイアウト、権限は含まれず、元オブジェクトの復元には使えません。

主な機能

  1. 01メタデータ XML を JSON 草稿に変換
  2. 02オブジェクト構造とプロパティを取得
  3. 03サンプルから新規オブジェクトを作成
  4. 04UUID、モジュール、フォームは除外
  5. 05ファイルまたは標準出力へ出力

活用シーン

  1. 01既存オブジェクトを参考に新規メタデータを作成
  2. 02コンパイル前に構造を確認して調整

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/meta-decompileを入力して読み込まれたか確認します。

同梱ファイルscripts/meta-decompile.ps1scripts/meta-decompile.py

README(原文)English

プロジェクトの README より

この README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。

/meta-decompile — DSL-заготовка из XML объекта метаданных

Читает XML объекта метаданных (Catalogs/Имя.xml и т.п.) и эмитит компактный JSON в формате /meta-compile. Назначение — взять существующий объект образцом и собрать по нему НОВЫЙ: декомпилировать → поправить → скомпилировать под другим именем.

⚠️ Главное: это НЕ обратимая выгрузка

Компиляция черновика создаёт новый объект с новой идентичностью, а не копию исходного. В JSON не попадают: UUID (идентичность самого объекта и всех дочерних), тела модулей, формы, макеты, права. Захватываются только структура и свойства.

Отсюда правило: никогда не компилируй черновик поверх объекта-источника и не выдавай его за «реимпорт» — у пересобранного объекта другие UUID, поэтому все ссылки на исходный объект (из кода, других объектов, состава подсистем, предопределённых данных) сломаются, а код модулей и формы пропадут.

Когда использовать

Собрать новый объект по образцу существующего — получить DSL-заготовку рабочего объекта, переименовать и адаптировать состав, скомпилировать в новый. Быстрее, чем писать DSL с нуля для богатого объекта.

Когда не использовать

  • Точечная правка существующего объекта (добавить реквизит, ТЧ, свойство) → /meta-edit. Цикл decompile→compile тут вреден: даёт объект с новой идентичностью и теряет модули/формы.
  • Сохранить / восстановить / перенести тот же объект (бэкап, миграция между конфигурациями с сохранением ссылок) → штатная выгрузка 1С (/db-dump-xml ↔ /db-load-xml, CF), а не decompile.
  • Просто понять структуру объекта (реквизиты, ТЧ, типы) без пересборки → /meta-info (дешевле, не плодит файл).

Параметры

ПараметрОписание
ObjectPathПуть к XML объекта (Catalogs/Имя.xml), обязательный
OutputPathПуть к выходному JSON. Если не задан — JSON в stdout
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-decompile.ps1" -ObjectPath "<Объект.xml>" -OutputPath "<out.json>"

Неподдерживаемый тип объекта или не-MetaDataObject root → ненулевой код выхода и сообщение в stderr.

Workflow (сборка нового объекта по образцу)

  1. /meta-decompile <Образец.xml> -OutputPath draft.json — получить заготовку.
  2. В draft.json сменить name на имя нового объекта и адаптировать состав (реквизиты/ТЧ/свойства). Ссылки на другие объекты (владельцы, ввод на основании, типы) — по имени, сохраняются как есть.
  3. /meta-compile -JsonPath draft.json -OutputDir <ConfigDir> — собрать (объект получит свежие UUID).
  4. /meta-validate + /meta-info — проверить.
  5. Модули, формы, макеты, права — добавить отдельно (в черновик они не попадают).

コメント