Cc-1c-skills form-edit
Добавление элементов, реквизитов и команд в существующую управляемую форму 1С. Используй когда нужно точечно модифицировать готовую форму
install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/form-edit" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-form-edit && rm -rf "$T"
manifest:
.claude/skills/form-edit/SKILL.mdsource content
/form-edit — Редактирование формы
Добавляет элементы, реквизиты и/или команды в существующий Form.xml. Автоматически выделяет ID из правильного пула, генерирует companion-элементы (ContextMenu, ExtendedTooltip, и др.) и обработчики событий.
Использование
/form-edit <FormPath> <JsonPath>
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
| FormPath | да | Путь к существующему Form.xml |
| JsonPath | да | Путь к JSON с описанием добавлений |
Команда
powershell.exe -NoProfile -File .claude/skills/form-edit/scripts/form-edit.ps1 -FormPath "<путь>" -JsonPath "<путь>"
JSON формат
{ "into": "ГруппаШапка", "after": "Контрагент", "elements": [ { "input": "Склад", "path": "Объект.Склад", "on": ["OnChange"] } ], "attributes": [ { "name": "СуммаИтого", "type": "decimal(15,2)" } ], "commands": [ { "name": "Рассчитать", "action": "РассчитатьОбработка" } ] }
Расширения (extension-формы)
Для заимствованных форм (с
<BaseForm>) автоматически активируется extension-режим: ID начинаются с 1000000+. Доступны дополнительные секции:
{ "formEvents": [ { "name": "OnCreateAtServer", "handler": "Расш1_ПриСозданииПосле", "callType": "After" }, { "name": "OnOpen", "handler": "Расш1_ПриОткрытии", "callType": "Before" } ], "elementEvents": [ { "element": "Банк", "name": "OnChange", "handler": "Расш1_БанкПриИзменении", "callType": "Before" } ], "commands": [ { "name": "Подбор", "action": "Расш1_ПодборПосле", "callType": "After" }, { "name": "Запрос", "actions": [ { "callType": "Before", "handler": "Расш1_ЗапросПеред" }, { "callType": "After", "handler": "Расш1_ЗапросПосле" } ]} ], "elements": [ { "input": "Поле", "path": "Объект.Поле", "on": [{ "event": "OnChange", "callType": "After" }] } ] }
Позиционирование элементов
| Ключ | По умолчанию | Описание |
|---|---|---|
| корневой ChildItems | Имя группы/таблицы/страницы, куда вставлять |
| в конец | Имя элемента, после которого вставлять |
Типы элементов
Те же DSL-ключи, что в
/form-compile:
| Ключ | XML тег | Companions |
|---|---|---|
| InputField | ContextMenu, ExtendedTooltip |
| CheckBoxField | ContextMenu, ExtendedTooltip |
| LabelDecoration | ContextMenu, ExtendedTooltip |
| LabelField | ContextMenu, ExtendedTooltip |
| UsualGroup | ExtendedTooltip |
| Table | ContextMenu, AutoCommandBar, Search*, ViewStatus* |
| Pages | ExtendedTooltip |
| Page | ExtendedTooltip |
| Button | ExtendedTooltip |
Группы и таблицы поддерживают
children/columns для вложенных элементов.
Кнопки: command и stdCommand
→"command": "ИмяКоманды"Form.Command.ИмяКоманды
→"stdCommand": "Close"Form.StandardCommand.Close
→"stdCommand": "Товары.Add"
(стандартная команда элемента)Form.Item.Товары.StandardCommand.Add
Допустимые события (on
)
onКомпилятор предупреждает об ошибках в именах событий. Основные:
- input:
,OnChange
,StartChoice
,ChoiceProcessing
,Clearing
,AutoCompleteTextEditEnd - check:
OnChange - table:
,OnStartEdit
,OnEditEnd
,OnChange
,Selection
,BeforeAddRow
,BeforeDeleteRowOnActivateRow - label/picture:
,ClickURLProcessing - pages:
OnCurrentPageChange - button:
Click
Система типов (для attributes)
string, string(100), decimal(15,2), boolean, date, dateTime, CatalogRef.XXX, DocumentObject.XXX, ValueTable, DynamicList, Type1 | Type2 (составной).
Секции расширений
| Секция | Назначение |
|---|---|
| События уровня формы с (Before/After/Override) |
| События на существующих элементах заимствованной формы |
на | callType на Action команды |
на | callType на событиях новых элементов (объектный формат) |
Все extension-секции опциональны — без них навык работает как с обычными формами.
Workflow
— посмотреть текущую структуру формы/form-info- Создать JSON с описанием добавлений
— добавить в форму/form-edit
— проверить корректность/form-validate
— убедиться что добавилось правильно/form-info