mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-14 09:54:56 +03:00
docs(meta-dsl-spec): update to v2.1 — reflect e2e-verified fixes
- §4.2: document separate type+length/precision fields in object form - §7.4 Constant: add length/precision fields - §7.7 DefinedType: document valueType (singular) alias - §7.9 ScheduledJob: document CommonModule. auto-prefix for methodName - §7.10 EventSubscription: document CommonModule. auto-prefix for handler - §7.13 ExchangePlan: remove codeType/autonumbering/checkUnique (not valid) - §7.14 ChartOfCharacteristicTypes: default String length 0→100 - §7.20 BusinessProcess: add task to example Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+28
-9
@@ -1,6 +1,6 @@
|
||||
# Meta DSL — спецификация JSON-формата для объектов метаданных 1С
|
||||
|
||||
Версия: 2.0
|
||||
Версия: 2.1
|
||||
|
||||
## Обзор
|
||||
|
||||
@@ -130,6 +130,17 @@ JSON DSL для описания объектов метаданных конф
|
||||
}
|
||||
```
|
||||
|
||||
Тип можно задать единой строкой (`"type": "String(100)"`) или раздельными полями:
|
||||
|
||||
```json
|
||||
{ "name": "Имя", "type": "String", "length": 100 }
|
||||
{ "name": "Сумма", "type": "Number", "length": 15, "precision": 2 }
|
||||
{ "name": "Остаток", "type": "Number", "length": 15, "precision": 2, "nonneg": true }
|
||||
```
|
||||
|
||||
Раздельная форма эквивалентна `String(100)`, `Number(15,2)`, `Number(15,2,nonneg)`.
|
||||
Если `type` уже содержит скобки — `length`/`precision` игнорируются.
|
||||
|
||||
### 4.3 Флаги
|
||||
|
||||
| Флаг | Действие | Применимость |
|
||||
@@ -243,8 +254,13 @@ JSON DSL для описания объектов метаданных конф
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `valueType` | `String` | Type |
|
||||
| `length` | — | Длина строки (если valueType=String) |
|
||||
| `precision` | — | Точность числа (если valueType=Number) |
|
||||
| `dataLockControlMode` | `Automatic` | DataLockControlMode |
|
||||
|
||||
`valueType` + `length`/`precision` работают аналогично раздельной форме типа (§4.2):
|
||||
`"valueType": "String", "length": 100` → `String(100)`.
|
||||
|
||||
### 7.5 InformationRegister
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
@@ -277,11 +293,13 @@ JSON DSL для описания объектов метаданных конф
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `valueTypes` | `[]` | Type (составной — массив `v8:Type`) |
|
||||
| `valueType` | — | Алиас для `valueTypes` (принимает строку или массив) |
|
||||
|
||||
Без ChildObjects и модулей.
|
||||
Без ChildObjects и модулей. Принимается как `valueTypes` (мн.ч.), так и `valueType` (ед.ч.).
|
||||
|
||||
```json
|
||||
{ "type": "DefinedType", "name": "ДенежныеСредства", "valueTypes": ["CatalogRef.БанковскиеСчета", "CatalogRef.Кассы"] }
|
||||
{ "type": "DefinedType", "name": "ФлагАктивности", "valueType": "Boolean" }
|
||||
```
|
||||
|
||||
### 7.8 CommonModule
|
||||
@@ -313,7 +331,7 @@ JSON DSL для описания объектов метаданных конф
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `methodName` | `""` | MethodName |
|
||||
| `methodName` | `""` | MethodName (авто-префикс `CommonModule.`) |
|
||||
| `description` | = synonym | Description |
|
||||
| `key` | `""` | Key |
|
||||
| `use` | `false` | Use |
|
||||
@@ -323,6 +341,8 @@ JSON DSL для описания объектов метаданных конф
|
||||
|
||||
Без ChildObjects и модулей.
|
||||
|
||||
Формат `methodName`: `"МодульСервер.Процедура"` — при компиляции авто-дополняется до `CommonModule.МодульСервер.Процедура`. Если уже содержит `CommonModule.` — оставляется как есть.
|
||||
|
||||
```json
|
||||
{ "type": "ScheduledJob", "name": "ОбменДанными", "methodName": "ОбменДаннымиСервер.Выполнить", "use": true }
|
||||
```
|
||||
@@ -333,12 +353,14 @@ JSON DSL для описания объектов метаданных конф
|
||||
|-----------|----------|-------------|
|
||||
| `source` | `[]` | Source (массив `v8:Type`, формат `cfg:XxxObject.Name`) |
|
||||
| `event` | `BeforeWrite` | Event |
|
||||
| `handler` | `""` | Handler |
|
||||
| `handler` | `""` | Handler (авто-префикс `CommonModule.`) |
|
||||
|
||||
Без ChildObjects и модулей.
|
||||
|
||||
Значения `event`: `BeforeWrite`, `OnWrite`, `BeforeDelete`, `OnReadAtServer`, `FillCheckProcessing` и др.
|
||||
|
||||
Формат `handler`: `"МодульСервер.Процедура"` — при компиляции авто-дополняется до `CommonModule.МодульСервер.Процедура`. Если уже содержит `CommonModule.` — оставляется как есть.
|
||||
|
||||
```json
|
||||
{ "type": "EventSubscription", "name": "ПередЗаписьюКонтрагента", "source": ["CatalogObject.Контрагенты"], "event": "BeforeWrite", "handler": "ОбщегоНазначенияСервер.ПередЗаписьюКонтрагента" }
|
||||
```
|
||||
@@ -382,11 +404,8 @@ JSON DSL для описания объектов метаданных конф
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `codeLength` | `9` | CodeLength |
|
||||
| `codeType` | `String` | CodeType |
|
||||
| `codeAllowedLength` | `Variable` | CodeAllowedLength |
|
||||
| `descriptionLength` | `100` | DescriptionLength |
|
||||
| `autonumbering` | `true` | Autonumbering |
|
||||
| `checkUnique` | `false` | CheckUnique |
|
||||
| `distributedInfoBase` | `false` | DistributedInfoBase |
|
||||
| `includeConfigurationExtensions` | `false` | IncludeConfigurationExtensions |
|
||||
| `dataLockControlMode` | `Automatic` | DataLockControlMode |
|
||||
@@ -419,7 +438,7 @@ JSON DSL для описания объектов метаданных конф
|
||||
| `attributes` | `[]` | → Attribute в ChildObjects |
|
||||
| `tabularSections` | `{}` | → TabularSection в ChildObjects |
|
||||
|
||||
\* Если `valueTypes` не указан, по умолчанию: Boolean, String, Number(15,2), DateTime.
|
||||
\* Если `valueTypes` не указан, по умолчанию: Boolean, String(100), Number(15,2), DateTime.
|
||||
|
||||
Модули: `Ext/ObjectModule.bsl` (пустой).
|
||||
|
||||
@@ -905,7 +924,7 @@ DSL для `columns` (§12).
|
||||
### Бизнес-процесс
|
||||
|
||||
```json
|
||||
{ "type": "BusinessProcess", "name": "Задание", "attributes": ["Описание: String(200)"] }
|
||||
{ "type": "BusinessProcess", "name": "Задание", "task": "Task.ЗадачаИсполнителя", "attributes": ["Описание: String(200)"] }
|
||||
```
|
||||
|
||||
### Задача
|
||||
|
||||
Reference in New Issue
Block a user