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.md
source 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" }] }
  ]
}

Позиционирование элементов

КлючПо умолчаниюОписание
into
корневой ChildItemsИмя группы/таблицы/страницы, куда вставлять
after
в конецИмя элемента, после которого вставлять

Типы элементов

Те же DSL-ключи, что в

/form-compile
:

КлючXML тегCompanions
input
InputFieldContextMenu, ExtendedTooltip
check
CheckBoxFieldContextMenu, ExtendedTooltip
label
LabelDecorationContextMenu, ExtendedTooltip
labelField
LabelFieldContextMenu, ExtendedTooltip
group
UsualGroupExtendedTooltip
table
TableContextMenu, AutoCommandBar, Search*, ViewStatus*
pages
PagesExtendedTooltip
page
PageExtendedTooltip
button
ButtonExtendedTooltip

Группы и таблицы поддерживают

children
/
columns
для вложенных элементов.

Кнопки: command и stdCommand

  • "command": "ИмяКоманды"
    Form.Command.ИмяКоманды
  • "stdCommand": "Close"
    Form.StandardCommand.Close
  • "stdCommand": "Товары.Add"
    Form.Item.Товары.StandardCommand.Add
    (стандартная команда элемента)

Допустимые события (
on
)

Компилятор предупреждает об ошибках в именах событий. Основные:

  • input:
    OnChange
    ,
    StartChoice
    ,
    ChoiceProcessing
    ,
    Clearing
    ,
    AutoComplete
    ,
    TextEditEnd
  • check:
    OnChange
  • table:
    OnStartEdit
    ,
    OnEditEnd
    ,
    OnChange
    ,
    Selection
    ,
    BeforeAddRow
    ,
    BeforeDeleteRow
    ,
    OnActivateRow
  • label/picture:
    Click
    ,
    URLProcessing
  • pages:
    OnCurrentPageChange
  • button:
    Click

Система типов (для attributes)

string
,
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-секции опциональны — без них навык работает как с обычными формами.

Workflow

  1. /form-info
    — посмотреть текущую структуру формы
  2. Создать JSON с описанием добавлений
  3. /form-edit
    — добавить в форму
  4. /form-validate
    — проверить корректность
  5. /form-info
    — убедиться что добавилось правильно