mcpField
M
meta-compile

meta-compile

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

meta-compile について

meta-compileは、JSONのオブジェクト定義からメタデータXMLとモジュールを生成し、Configuration.xmlに登録する1C構成開発向けスキルです。単一オブジェクトと複数件の一括処理に対応し、プラットフォーム管理のバージョンファイルは変更しません。

主な機能

  1. 01JSONからメタデータXMLとモジュールを生成
  2. 02単一オブジェクトと一括入力に対応
  3. 03生成物をConfiguration.xmlに登録
  4. 04多様なオブジェクト型とプロパティに対応

活用シーン

  1. 01定義から1C構成メタデータを作成
  2. 02列挙型、カタログ、定数をまとめて生成
  3. 03生成物を後続の編集・検証に備える

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
attributes.md
blocks.md
catalog.md
charts.md
code.md
document.md
exchangeplan.md
external-data-source.md
other-types.md
process.md
registers.md
report-dataprocessor.md
simple.md
web.md
scripts/
meta-compile.ps1
meta-compile.py

詳細

/meta-compile — JSONからメタデータオブジェクトを生成

オブジェクトのJSON定義を受け取り → 構成のエクスポート構造にXMLとモジュールを生成し、 オブジェクトをConfiguration.xmlに登録します。

ConfigDumpInfo.xmlには意図的に変更を加えません。これは、プラットフォームが管理するオブジェクトのバージョン情報を記録するサービスファイルです(差分エクスポート用)。

作業手順

  1. 以下の構文に従ってJSONを作成し、一時ファイルに保存します。
  2. スクリプトを実行します。
  3. 作成されたオブジェクトを変更するには/meta-editを使用し、検証するには/meta-validateを使用します。
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-compile.ps1" -JsonPath "<json>" -OutputDir "<ConfigDir>"
パラメーター説明
JsonPathJSONファイルのパス
OutputDir構成のエクスポートルート(Configuration.xml、Catalogs/、Documents/などがある場所)

JSON形式

単一オブジェクト{ ... }またはオブジェクトの配列[{ ... }, { ... }](バッチ処理 — 1回の実行で複数のオブジェクトを処理)。

{ "type": "Catalog", "name": "Номенклатура", "...свойства типа...": "..." }

typeとnameは必須です。それ以外はタイプごとに異なります(下のインデックスを参照)。synonymはデフォルトでnameから生成されます(CamelCase → スペース区切りの単語)。文字列または複数言語で明示的に指定することもできます:"synonym": { "ru": "…", "en": "…" }。

属性(簡略形式)

attributes、dimensions、resourcesの配列と、tabularSections内の列は文字列で指定します。

"Имя"                          → String(10)
"Имя: Тип"                     → с типом
"Имя: Тип | req, index"        → с флагами

タイプ: String(100)、String(10, fixed)(固定長)、Number(15,2)、Boolean、Date、DateTime、 Time、参照タイプのCatalogRef.Xxx / DocumentRef.Xxx / EnumRef.Xxx / DefinedType.Xxxなど。 複合タイプは+で指定します:"値: String + Number(15,2) + CatalogRef.Контрагенты"。

フラグ(|の後にカンマ区切りで指定):

フラグ意味適用先
req入力必須attributes、dimensions、resources
indexインデックスを作成attributes、dimensions
indexAdditional追加の順序指定を伴うインデックスattributes
multiline複数行フィールドattributes
nonneg負数不可(Number)attributes、resources
master主ディメンションdimensions(レジスター)
mainFilter主フィルターdimensions(レジスター)
denyIncomplete未入力を禁止dimensions
useInTotals合計に使用dimensions(積算レジスター)

属性に簡略形式では表せないプロパティ(入力値、選択パラメーター、書式、ヒントなど)が必要な場合は、オブジェクト形式で指定します。reference/attributes.mdを参照してください。

テーブルパート

"tabularSections": { "Товары": ["Номенклатура: CatalogRef.Номенклатура", "Количество: Number(15,3)"] }

キーはテーブルパート名、値は列(簡略形式)の配列、またはテーブルパートのプロパティを持つオブジェクトです(reference/attributes.mdを参照)。

インデックス:タイプごとのプロパティ

タイプごとに、プロパティ、デフォルト値、許容値を記載したreferenceファイルがあります。

タイプファイル
Catalog(カタログ)reference/catalog.md
Document、DocumentJournal、Sequence、DocumentNumeratorreference/document.md
InformationRegister、AccumulationRegister、AccountingRegister、CalculationRegisterreference/registers.md
ChartOfAccounts、ChartOfCharacteristicTypes、ChartOfCalculationTypesreference/charts.md
ExchangePlanreference/exchangeplan.md
BusinessProcess、Taskreference/process.md
Report、DataProcessorreference/report-dataprocessor.md
CommonModule、ScheduledJob、EventSubscriptionreference/code.md
HTTPService、WebServicereference/web.md
Enum、Constant、DefinedTypereference/simple.md
ExternalDataSource(外部データソース)reference/external-data-source.md
FunctionalOption、FilterCriterion、SettingsStorage、CommonForm、CommonPicture、CommonTemplate、サービスオブジェクトreference/other-types.md

タイプ共通の詳細:

  • reference/attributes.md — 属性およびテーブルパートの列のオブジェクト形式(入力値、選択パラメーター、書式、ヒント、範囲など)、およびテーブルパート自体のプロパティ。
  • reference/blocks.md — オブジェクトのブロック:表示、コマンド(特性/標準属性を含む)。

この手順とreferenceファイルが完全なドキュメントです。構成のエクスポート内でXMLの例を探さないでください。

Примеры

Справочник с реквизитами:

{ "type": "Catalog", "name": "Организации", "descriptionLength": 100,
  "attributes": ["ИНН: String(12)", "КПП: String(9)", "Директор: CatalogRef.ФизическиеЛица"] }

Документ с движениями и ТЧ:

{ "type": "Document", "name": "ПриходнаяНакладная",
  "registerRecords": ["AccumulationRegister.ОстаткиТоваров"],
  "attributes": ["Организация: CatalogRef.Организации", "Контрагент: CatalogRef.Контрагенты"],
  "tabularSections": { "Товары": ["Номенклатура: CatalogRef.Номенклатура", "Количество: Number(15,3)", "Цена: Number(15,2)"] } }

Регистр сведений:

{ "type": "InformationRegister", "name": "КурсыВалют", "periodicity": "Day",
  "dimensions": ["Валюта: CatalogRef.Валюты | master, mainFilter, denyIncomplete"],
  "resources": ["Курс: Number(15,4)", "Кратность: Number(10,0)"] }

Batch:

[ { "type": "Enum", "name": "Статусы", "values": ["Новый", "Закрыт"] },
  { "type": "Catalog", "name": "Валюты" },
  { "type": "Constant", "name": "ОсновнаяВалюта", "valueType": "CatalogRef.Валюты" } ]

コメント