mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 06:45:17 +03:00
feat(meta-compile,meta-decompile): команды объекта (Command + CommandModule.bsl) (v1.26/v0.11)
Новая возможность (не только раундтрип): meta-compile теперь умеет добавлять команды объекту (раньше не умел вовсе). Корпус: 243 команды в 133 справочниках. DSL `commands` (map имя→объект ИЛИ array): synonym/tooltip (ML, авто-синоним), comment, group, commandParameterType (тип), parameterUseMode (Single), modifiesData (false), representation (Auto), picture/shortcut, onMainServerUnavalableBehavior (Auto). Все omit-on-default. - meta-compile (дуал-порт): Emit-Command → <Command>-блок в ChildObjects (после ТЧ) + генерация Commands/<Имя>/Ext/CommandModule.bsl с заготовкой обработчика ОбработкаКоманды. - meta-decompile: захват команд из ChildObjects (тела модулей — вне скоупа, как ObjectModule). - spec §7.1.3; тест-кейс catalog-command. Валидация: PS==PY (XML+модуль); Command-категория 0; −6244 (53436→47192); регресс 38/38; 1С-cert зелёный (справочник с командой+параметр-типом+модулем грузится в платформу). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -355,6 +355,34 @@ JSON DSL для описания объектов метаданных конф
|
||||
|
||||
> Пока поддержано для **Catalog** (`CatalogPredefinedItems`). ChartOf*/ПВХ — при их проработке.
|
||||
|
||||
#### 7.1.3 `commands` — команды объекта
|
||||
|
||||
Команды объекта → `<Command>`-блоки в ChildObjects + заготовка `Commands/<Имя>/Ext/CommandModule.bsl` (обработчик `ОбработкаКоманды`). Ключ — имя команды, значение — объект свойств (map `имя→объект`, либо массив `[{name, …}]`).
|
||||
|
||||
| Ключ | XML | Умолчание |
|
||||
|------|-----|-----------|
|
||||
| `synonym` | Synonym | авто из имени (ML) |
|
||||
| `tooltip` | ToolTip | пусто (ML) |
|
||||
| `comment` | Comment | пусто |
|
||||
| `group` | Group | пусто (`FormCommandBarImportant`, `FormNavigationPanelGoTo`, …) |
|
||||
| `commandParameterType` | CommandParameterType | пусто (тип, напр. `CatalogRef.Номенклатура`) |
|
||||
| `parameterUseMode` | ParameterUseMode | `Single` (`Single`/`Multiple`) |
|
||||
| `modifiesData` | ModifiesData | `false` (bool) |
|
||||
| `representation` | Representation | `Auto` |
|
||||
| `picture` / `shortcut` | Picture / Shortcut | пусто |
|
||||
| `onMainServerUnavalableBehavior` | OnMainServerUnavalableBehavior | `Auto` |
|
||||
|
||||
```json
|
||||
"commands": {
|
||||
"ПечатьЭтикеток": {
|
||||
"synonym": "Печать этикеток", "group": "FormCommandBarImportant",
|
||||
"commandParameterType": "CatalogRef.Номенклатура", "modifiesData": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> Тело модуля команды генерируется заготовкой (обработчик пустой). Раундтрип тела модуля не проверяет (как ObjectModule).
|
||||
|
||||
### 7.2 Document
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|
||||
Reference in New Issue
Block a user