mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-07 20:20:20 +03:00
Extend /meta-compile to 23 metadata types (Phase 2)
Add 17 new types: ExchangePlan, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, AccountingRegister, CalculationRegister, BusinessProcess, Task, DocumentJournal, Report, DataProcessor, CommonModule, ScheduledJob, EventSubscription, HTTPService, WebService, DefinedType. Update DSL spec to v2.0 and improve skill description. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
acee4bd188
commit
2d79c0b0ee
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: meta-compile
|
||||
description: Компиляция объекта метаданных 1С (Справочник, Документ, Перечисление, Константа, Регистр) из компактного JSON-определения
|
||||
description: Создать исходники объекта метаданных 1С (справочник, документ, регистр, перечисление, константа, общий модуль, обработка, HTTP-сервис и др.) в выгрузке конфигурации. Используй когда пользователь просит добавить или создать объект конфигурации
|
||||
argument-hint: <JsonPath> <OutputDir>
|
||||
allowed-tools:
|
||||
- Bash
|
||||
@@ -24,11 +24,21 @@ allowed-tools:
|
||||
powershell.exe -NoProfile -File .claude\skills\meta-compile\scripts\meta-compile.ps1 -JsonPath "<json>" -OutputDir "<ConfigDir>"
|
||||
```
|
||||
|
||||
`OutputDir` — директория, содержащая подпапки `Catalogs/`, `Documents/`, `Enums/`, `Constants/`, `InformationRegisters/`, `AccumulationRegisters/`, а также `Configuration.xml`.
|
||||
`OutputDir` — директория, содержащая подпапки типов (`Catalogs/`, `Documents/`, ...) и `Configuration.xml`.
|
||||
|
||||
## Поддерживаемые типы
|
||||
## Поддерживаемые типы (23)
|
||||
|
||||
Catalog (Справочник), Document (Документ), Enum (Перечисление), Constant (Константа), InformationRegister (РегистрСведений), AccumulationRegister (РегистрНакопления).
|
||||
### Ссылочные
|
||||
Catalog (Справочник), Document (Документ), Enum (Перечисление), ExchangePlan (ПланОбмена), ChartOfAccounts (ПланСчетов), ChartOfCharacteristicTypes (ПВХ), ChartOfCalculationTypes (ПВР), BusinessProcess (БизнесПроцесс), Task (Задача)
|
||||
|
||||
### Регистры
|
||||
InformationRegister (РегистрСведений), AccumulationRegister (РегистрНакопления), AccountingRegister (РегистрБухгалтерии), CalculationRegister (РегистрРасчёта)
|
||||
|
||||
### Отчёты/Обработки
|
||||
Report (Отчёт), DataProcessor (Обработка)
|
||||
|
||||
### Сервисные
|
||||
Constant (Константа), DefinedType (ОпределяемыйТип), CommonModule (ОбщийМодуль), ScheduledJob (РегламентноеЗадание), EventSubscription (ПодпискаНаСобытие), DocumentJournal (ЖурналДокументов), HTTPService (HTTPСервис), WebService (ВебСервис)
|
||||
|
||||
## JSON DSL — краткий справочник
|
||||
|
||||
@@ -55,34 +65,15 @@ Catalog (Справочник), Document (Документ), Enum (Перечи
|
||||
"ИмяРеквизита: Тип | req, index" — с флагами
|
||||
```
|
||||
|
||||
Типы: `String(100)`, `Number(15,2)`, `Boolean`, `Date`, `DateTime`, `CatalogRef.Xxx`, `DocumentRef.Xxx`, `EnumRef.Xxx`, `DefinedType.Xxx`. Русские синонимы: `Строка(100)`, `Число(15,2)`, `Булево`, `Дата`, `СправочникСсылка.Xxx`.
|
||||
Типы: `String(100)`, `Number(15,2)`, `Boolean`, `Date`, `DateTime`, `CatalogRef.Xxx`, `DocumentRef.Xxx`, `EnumRef.Xxx`, `ChartOfAccountsRef.Xxx`, `ChartOfCharacteristicTypesRef.Xxx`, `ChartOfCalculationTypesRef.Xxx`, `ExchangePlanRef.Xxx`, `BusinessProcessRef.Xxx`, `TaskRef.Xxx`, `DefinedType.Xxx`.
|
||||
|
||||
Флаги: `req` (обязательное), `index`, `indexAdditional`, `nonneg`, `master`, `mainFilter`, `denyIncomplete`, `useInTotals`.
|
||||
Русские синонимы типов: `Строка`, `Число`, `Булево`, `Дата`, `СправочникСсылка.Xxx`, `ДокументСсылка.Xxx`, `ПланСчетовСсылка.Xxx`.
|
||||
|
||||
### Табличные части (Catalog, Document)
|
||||
|
||||
```json
|
||||
"tabularSections": {
|
||||
"Товары": ["Номенклатура: CatalogRef.Xxx | req", "Количество: Number(10,3)"]
|
||||
}
|
||||
```
|
||||
|
||||
### Перечисления
|
||||
|
||||
```json
|
||||
"values": ["Приход", "Расход", { "name": "НДС20", "synonym": "НДС 20%" }]
|
||||
```
|
||||
|
||||
### Измерения и ресурсы (регистры)
|
||||
|
||||
```json
|
||||
"dimensions": ["Организация: CatalogRef.Xxx | master, mainFilter"],
|
||||
"resources": ["Количество: Number(15,3)"]
|
||||
```
|
||||
Флаги: `req`, `index`, `indexAdditional`, `nonneg`, `master`, `mainFilter`, `denyIncomplete`, `useInTotals`.
|
||||
|
||||
## Примеры
|
||||
|
||||
### Минимальный справочник
|
||||
### Справочник
|
||||
|
||||
```json
|
||||
{ "type": "Catalog", "name": "Валюты" }
|
||||
@@ -100,23 +91,90 @@ Catalog (Справочник), Document (Документ), Enum (Перечи
|
||||
{ "type": "Constant", "name": "ОсновнаяВалюта", "valueType": "CatalogRef.Валюты" }
|
||||
```
|
||||
|
||||
### Определяемый тип
|
||||
|
||||
```json
|
||||
{ "type": "DefinedType", "name": "ДенежныеСредства", "valueTypes": ["CatalogRef.БанковскиеСчета", "CatalogRef.Кассы"] }
|
||||
```
|
||||
|
||||
### Общий модуль
|
||||
|
||||
```json
|
||||
{ "type": "CommonModule", "name": "ОбменДаннымиСервер", "context": "server", "returnValuesReuse": "DuringRequest" }
|
||||
```
|
||||
|
||||
Шорткаты context: `"server"` → Server+ServerCall, `"client"` → ClientManagedApplication, `"serverClient"` → Server+ClientManagedApplication.
|
||||
|
||||
### Регистр сведений
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "InformationRegister",
|
||||
"name": "КурсыВалют",
|
||||
"periodicity": "Day",
|
||||
"type": "InformationRegister", "name": "КурсыВалют", "periodicity": "Day",
|
||||
"dimensions": ["Валюта: CatalogRef.Валюты | master, mainFilter, denyIncomplete"],
|
||||
"resources": ["Курс: Number(15,4)", "Кратность: Number(10,0)"]
|
||||
}
|
||||
```
|
||||
|
||||
### План обмена
|
||||
|
||||
```json
|
||||
{ "type": "ExchangePlan", "name": "ОбменССайтом", "attributes": ["АдресСервера: String(200)"] }
|
||||
```
|
||||
|
||||
### Журнал документов
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "DocumentJournal", "name": "Взаимодействия",
|
||||
"registeredDocuments": ["Document.Встреча", "Document.ТелефонныйЗвонок"],
|
||||
"columns": [{ "name": "Организация", "indexing": "Index", "references": ["Document.Встреча.Attribute.Организация"] }]
|
||||
}
|
||||
```
|
||||
|
||||
### HTTP-сервис
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "HTTPService", "name": "API", "rootURL": "api",
|
||||
"urlTemplates": { "Users": { "template": "/v1/users", "methods": { "Get": "GET", "Create": "POST" } } }
|
||||
}
|
||||
```
|
||||
|
||||
### Веб-сервис
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "WebService", "name": "DataExchange", "namespace": "http://www.1c.ru/DataExchange",
|
||||
"operations": { "TestConnection": { "returnType": "xs:boolean", "handler": "ПроверкаПодключения", "parameters": { "ErrorMessage": { "type": "xs:string", "direction": "Out" } } } }
|
||||
}
|
||||
```
|
||||
|
||||
### План счетов
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "ChartOfAccounts", "name": "Хозрасчетный",
|
||||
"extDimensionTypes": "ChartOfCharacteristicTypes.ВидыСубконто", "maxExtDimensionCount": 3,
|
||||
"codeMask": "@@@.@@.@", "codeLength": 8,
|
||||
"accountingFlags": ["Валютный", "Количественный"],
|
||||
"extDimensionAccountingFlags": ["Суммовой", "Валютный"]
|
||||
}
|
||||
```
|
||||
|
||||
### Бизнес-процесс
|
||||
|
||||
```json
|
||||
{ "type": "BusinessProcess", "name": "Задание", "attributes": ["Описание: String(200)"] }
|
||||
```
|
||||
|
||||
## Что генерируется
|
||||
|
||||
- `{OutputDir}/{TypePlural}/{Name}.xml` — метаданные объекта
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/ObjectModule.bsl` — пустой модуль (Catalog, Document)
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/RecordSetModule.bsl` — пустой модуль (регистры)
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/ObjectModule.bsl` — модуль объекта (Catalog, Document, Report, DataProcessor, ExchangePlan, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task)
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/RecordSetModule.bsl` — модуль набора записей (4 типа регистров)
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/Module.bsl` — модуль (CommonModule, HTTPService, WebService)
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/Content.xml` — состав плана обмена (ExchangePlan)
|
||||
- `{OutputDir}/{TypePlural}/{Name}/Ext/Flowchart.xml` — карта маршрута (BusinessProcess)
|
||||
- `Configuration.xml` — автоматическая регистрация в `<ChildObjects>`
|
||||
|
||||
## Верификация
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user