From 1c-skills
Adds elements, attributes, commands, and event handlers to existing 1C managed Form.xml files via JSON. Supports extension mode for borrowed forms with auto-ID generation and companions.
npx claudepluginhub nikolay-shirokov/cc-1c-skills --plugin 1c-skillsThis skill uses the workspace's default tool permissions.
---
Compiles 1C managed Form.xml from JSON DSL definitions or object metadata (ERP preset). Use to generate forms from scratch or standard object forms.
Provides Frappe client-side JavaScript patterns for form events (refresh, validate), field manipulation (toggle, set_value), dialogs, custom buttons, and desk UI customization.
Edits existing Power Apps canvas apps via .pa.yaml files. Syncs from coauthoring session, checks for content, assesses simple vs complex edits, and orchestrates changes or generation.
Share bugs, ideas, or general feedback.
Добавляет элементы, реквизиты и/или команды в существующий Form.xml. Автоматически выделяет ID из правильного пула, генерирует companion-элементы (ContextMenu, ExtendedTooltip, и др.) и обработчики событий.
/form-edit <FormPath> <JsonPath>
| Параметр | Обязательный | Описание |
|---|---|---|
| FormPath | да | Путь к существующему Form.xml |
| JsonPath | да | Путь к JSON с описанием добавлений |
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-edit.ps1" -FormPath "<путь>" -JsonPath "<путь>"
{
"into": "ГруппаШапка",
"after": "Контрагент",
"elements": [
{ "input": "Склад", "path": "Объект.Склад", "on": ["OnChange"] }
],
"attributes": [
{ "name": "СуммаИтого", "type": "decimal(15,2)" }
],
"commands": [
{ "name": "Рассчитать", "action": "РассчитатьОбработка" }
]
}
Для заимствованных форм (с <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" }] }
]
}
| Ключ | По умолчанию | Описание |
|---|---|---|
into | корневой ChildItems | Имя группы/таблицы/страницы, куда вставлять |
after | в конец | Имя элемента, после которого вставлять |
Те же DSL-ключи, что в /form-compile:
| Ключ | XML тег | Companions |
|---|---|---|
input | InputField | ContextMenu, ExtendedTooltip |
check | CheckBoxField | ContextMenu, ExtendedTooltip |
label | LabelDecoration | ContextMenu, ExtendedTooltip |
labelField | LabelField | ContextMenu, ExtendedTooltip |
group | UsualGroup | ExtendedTooltip |
table | Table | ContextMenu, AutoCommandBar, Search*, ViewStatus* |
pages | Pages | ExtendedTooltip |
page | Page | ExtendedTooltip |
button | Button | ExtendedTooltip |
Группы и таблицы поддерживают children/columns для вложенных элементов.
"command": "ИмяКоманды" → Form.Command.ИмяКоманды"stdCommand": "Close" → Form.StandardCommand.Close"stdCommand": "Товары.Add" → Form.Item.Товары.StandardCommand.Add (стандартная команда элемента)on)Компилятор предупреждает об ошибках в именах событий. Основные:
OnChange, StartChoice, ChoiceProcessing, Clearing, AutoComplete, TextEditEndOnChangeOnStartEdit, OnEditEnd, OnChange, Selection, BeforeAddRow, BeforeDeleteRow, OnActivateRowClick, URLProcessingOnCurrentPageChangeClickstring, string(100), decimal(15,2), boolean, date, dateTime, CatalogRef.XXX, DocumentObject.XXX, ValueTable, DynamicList, Type1 | Type2 (составной).
| Секция | Назначение |
|---|---|
formEvents | События уровня формы с callType (Before/After/Override) |
elementEvents | События на существующих элементах заимствованной формы |
callType на commands | callType на Action команды |
callType на on | callType на событиях новых элементов (объектный формат) |
Все extension-секции опциональны — без них навык работает как с обычными формами.
/form-info — посмотреть текущую структуру формы/form-edit — добавить в форму/form-validate — проверить корректность/form-info — убедиться что добавилось правильно