meta-compile について
meta-compileは、JSONのオブジェクト定義からメタデータXMLとモジュールを生成し、Configuration.xmlに登録する1C構成開発向けスキルです。単一オブジェクトと複数件の一括処理に対応し、プラットフォーム管理のバージョンファイルは変更しません。
主な機能
- 01JSONからメタデータXMLとモジュールを生成
- 02単一オブジェクトと一括入力に対応
- 03生成物をConfiguration.xmlに登録
- 04多様なオブジェクト型とプロパティに対応
活用シーン
- 01定義から1C構成メタデータを作成
- 02列挙型、カタログ、定数をまとめて生成
- 03生成物を後続の編集・検証に備える
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nikolay-shirokov/ cc-1c-skills --skill meta-compileインストール後、Claude Code で/meta-compileを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/attributes.mdblocks.mdcatalog.mdcharts.mdcode.mddocument.mdexchangeplan.mdexternal-data-source.mdother-types.mdprocess.mdregisters.mdreport-dataprocessor.mdsimple.mdweb.mdscripts/meta-compile.ps1meta-compile.py詳細
/meta-compile — JSONからメタデータオブジェクトを生成
オブジェクトのJSON定義を受け取り → 構成のエクスポート構造にXMLとモジュールを生成し、
オブジェクトをConfiguration.xmlに登録します。
ConfigDumpInfo.xmlには意図的に変更を加えません。これは、プラットフォームが管理するオブジェクトのバージョン情報を記録するサービスファイルです(差分エクスポート用)。
作業手順
- 以下の構文に従ってJSONを作成し、一時ファイルに保存します。
- スクリプトを実行します。
- 作成されたオブジェクトを変更するには
/meta-editを使用し、検証するには/meta-validateを使用します。
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-compile.ps1" -JsonPath "<json>" -OutputDir "<ConfigDir>"
| パラメーター | 説明 |
|---|---|
JsonPath | JSONファイルのパス |
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、DocumentNumerator | reference/document.md |
| InformationRegister、AccumulationRegister、AccountingRegister、CalculationRegister | reference/registers.md |
| ChartOfAccounts、ChartOfCharacteristicTypes、ChartOfCalculationTypes | reference/charts.md |
| ExchangePlan | reference/exchangeplan.md |
| BusinessProcess、Task | reference/process.md |
| Report、DataProcessor | reference/report-dataprocessor.md |
| CommonModule、ScheduledJob、EventSubscription | reference/code.md |
| HTTPService、WebService | reference/web.md |
| Enum、Constant、DefinedType | reference/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.Валюты" } ]