mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
Add form-add skill for modifying existing Form.xml
Adds elements, attributes, and commands to existing managed forms via JSON input. Supports positional insertion (into/after), auto ID allocation from correct pools, companion generation, and event handlers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+28
-8
@@ -9,6 +9,7 @@
|
||||
| `/form-info` | `<FormPath>` | Компактная сводка: дерево элементов, реквизиты, команды, события |
|
||||
| `/form-compile` | `<JsonPath> <OutputPath>` | Генерация Form.xml из компактного JSON-определения |
|
||||
| `/form-validate` | `<FormPath>` | Валидация: уникальность ID, companions, DataPath, команды |
|
||||
| `/form-add` | `<FormPath> <JsonPath>` | Добавление элементов, реквизитов, команд в существующую форму |
|
||||
|
||||
## Сценарии использования
|
||||
|
||||
@@ -51,15 +52,32 @@ Commands:
|
||||
Печать -> ПечатьДокумента [Ctrl+P]
|
||||
```
|
||||
|
||||
### Добавление элемента на форму
|
||||
### Добавление элементов в существующую форму
|
||||
|
||||
Чтобы добавить поле на форму, нужно знать структуру групп и ориентацию (горизонтальная/вертикальная). `/form-info` показывает это в дереве элементов.
|
||||
`/form-add` добавляет элементы, реквизиты и команды в существующий Form.xml. Автоматически назначает ID, генерирует companion-элементы и обработчики событий.
|
||||
|
||||
```
|
||||
> Добавь поле "Склад" в шапку формы документа
|
||||
> Добавь поле "Склад" в шапку формы после "Контрагент"
|
||||
```
|
||||
|
||||
Claude вызовет `/form-info`, увидит `[Group:AH] ГруппаШапка` → `[Group:V] ГруппаШапкаЛевая`, поймёт куда вставить элемент в XML.
|
||||
Claude вызовет `/form-info` для анализа структуры, создаст JSON и вызовет `/form-add`:
|
||||
|
||||
```json
|
||||
{
|
||||
"into": "ГруппаШапка",
|
||||
"after": "Контрагент",
|
||||
"elements": [
|
||||
{ "input": "Склад", "path": "Объект.Склад", "on": ["OnChange"] }
|
||||
],
|
||||
"attributes": [
|
||||
{ "name": "Склад", "type": "CatalogRef.Склады" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Позиционирование: `into` указывает группу-контейнер, `after` — элемент, после которого вставлять. Оба опциональны (по умолчанию — в конец корневого ChildItems).
|
||||
|
||||
Один вызов может содержать элементы, реквизиты и команды одновременно. Группы поддерживают `children` для вложенных элементов.
|
||||
|
||||
### Поиск обработчиков и привязок
|
||||
|
||||
@@ -173,6 +191,7 @@ Claude создаст JSON-определение и вызовет `/form-compi
|
||||
> /form-info upload/acc_8.3.24/Documents/РеализацияТоваровУслуг/Forms/ФормаДокумента/Ext/Form.xml
|
||||
> /form-info src/МояОбработка/Forms/Форма/Ext/Form.xml
|
||||
> /form-compile src/form.json src/МояОбработка/Forms/Форма/Ext/Form.xml
|
||||
> /form-add src/МояОбработка/Forms/Форма/Ext/Form.xml src/additions.json
|
||||
> /form-validate src/МояОбработка/Forms/Форма/Ext/Form.xml
|
||||
```
|
||||
|
||||
@@ -182,11 +201,12 @@ Claude создаст JSON-определение и вызовет `/form-compi
|
||||
|
||||
1. `/epf-add-form` — создать форму (каркас)
|
||||
2. `/form-compile` — сгенерировать Form.xml из JSON-определения
|
||||
3. `/form-validate` — проверить корректность
|
||||
4. `/form-info` — проанализировать результат
|
||||
5. `/epf-build` — собрать EPF
|
||||
3. `/form-add` — добавить элементы/реквизиты/команды в существующую форму
|
||||
4. `/form-validate` — проверить корректность
|
||||
5. `/form-info` — проанализировать результат
|
||||
6. `/epf-build` — собрать EPF
|
||||
|
||||
## Спецификации
|
||||
|
||||
- [Управляемая форма](1c-form-spec.md) — Form.xml, элементы, команды, реквизиты, система типов
|
||||
- [Form DSL](form-dsl-spec.md) — JSON-формат описания формы для `/form-compile`
|
||||
- [Form DSL](form-dsl-spec.md) — JSON-формат описания формы для `/form-compile` и `/form-add`
|
||||
|
||||
Reference in New Issue
Block a user