一键导入
form-edit
Добавление элементов, реквизитов и команд в существующую управляемую форму 1С. Используй когда нужно точечно модифицировать готовую форму
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Добавление элементов, реквизитов и команд в существующую управляемую форму 1С. Используй когда нужно точечно модифицировать готовую форму
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Компиляция управляемой формы 1С из JSON-определения или из метаданных объекта. Используй когда нужно создать форму с нуля по описанию элементов или по стандартному пресету объекта
Диагностика BSL и объяснение отключений диагностик в коде. Используй когда нужно запустить или разобрать диагностики, объяснить коды АПК, EDT, BSL LS, inline/range disable markers, suppression-комментарии или стандарт v8std за диагностикой.
Точечное редактирование объекта метаданных 1С. Используй когда нужно добавить, удалить или изменить реквизиты, табличные части, измерения, ресурсы или свойства существующего объекта конфигурации
Создать объект метаданных 1С. Используй когда нужно создать или добавить справочник, документ, регистр, перечисление, константу, общий модуль, обработку, отчёт и др.
Валидация управляемой формы 1С. Используй после создания или модификации формы для проверки корректности. При наличии BaseForm автоматически проверяет callType и ID расширений
Создать пустой make-ready scaffold внешней обработки 1С (EPF) в корне Designer/platform-XML external source-set, с модулем объекта и опциональной управляемой формой. Используй при запросе создать новую внешнюю обработку с нуля; не используй для обычного DataProcessor внутри конфигурации.
| name | form-edit |
| description | Добавление элементов, реквизитов и команд в существующую управляемую форму 1С. Используй когда нужно точечно модифицировать готовую форму |
| argument-hint | <FormPath> (<JsonPath> | <definition>) |
| allowed-tools | ["Bash","Read","Write","Glob"] |
unica tool unica.form.edit; unica owns XML/JSON DSL work and refreshes related workspace caches after mutations.unica and synchronized by the orchestrator.unica tool unica.form.edit; skill-local operation scripts are not part of the workflow.dryRun: false only when the user explicitly requested the change; otherwise keep the default dry run.unica; if it blocks a locked/read-only supported object, prefer CFE/release-support or an explicit support-state change plan instead of editing raw support metadata.Добавляет элементы, реквизиты и/или команды в существующий Form.xml. Автоматически выделяет ID из правильного пула, генерирует companion-элементы (ContextMenu, ExtendedTooltip, и др.) и обработчики событий.
Используй MCP unica tool unica.form.edit с FormPath и ровно одним источником изменений: JsonPath или inline-объектом definition.
| Параметр | Обязательный | Описание |
|---|---|---|
| FormPath | да | Путь к существующему Form.xml |
| JsonPath | один из двух | Путь к JSON с описанием добавлений |
| definition | один из двух | То же описание как inline JSON object |
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "unica.form.edit",
"arguments": {
"cwd": "<workspace>",
"FormPath": "src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml",
"JsonPath": "forms/patch-add-article.json",
"dryRun": false
}
}
}
Для небольшого изменения можно передать DSL без временного файла:
{
"FormPath": "src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml",
"definition": {
"formEvents": [
{ "name": "OnCreateAtServer", "handler": "ПриСозданииНаСервере" }
]
},
"dryRun": false
}
{
"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-ключи, что в unica.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)Editor до записи проверяет событие по единой платформенной матрице. Недопустимое сочетание возвращает ok=false и код FORM_EVENT_*, не меняя файл. Основные сочетания:
OnChange, StartChoice, ChoiceProcessing, Clearing, AutoComplete, TextEditEnd, Opening, Creating, EditTextChangeOnChangeOnStartEdit, OnEditEnd, OnChange, Selection, BeforeAddRow, BeforeDeleteRow, OnActivateRowClick, URLProcessingClick, Drag, DragCheckOnCurrentPageChangeСобытия table требуют непустой привязки: path для нового элемента или прямого DataPath у существующего Table. Платформа удаляет обработчики событий у несвязанной таблицы при загрузке/выгрузке конфигурации.
OnReadAtServer, BeforeWrite, BeforeWriteAtServer, OnWriteAtServer, AfterWriteAtServer и AfterWrite разрешены только при подтверждённом persistent object/record типе главного реквизита. Для DataProcessorObject, ReportObject, DynamicList и неизвестного контекста они отклоняются. NewWriteProcessing и FillCheckProcessingAtServer являются общими событиями формы и этим ограничением не связаны.
string, string(100), decimal(15,2), boolean, date, dateTime, CatalogRef.XXX, DocumentObject.XXX, ValueTable, DynamicList, Type1 | Type2 (составной).
| Секция | Назначение |
|---|---|
formEvents | События уровня формы; callType только для расширения |
elementEvents | События существующих элементов; callType только для расширения |
callType на commands | callType на Action команды |
callType на on | callType на событиях новых элементов (объектный формат) |
Все extension-секции опциональны — без них навык работает как с обычными формами.
Повтор идентичного binding является явным idempotent no-op. Конфликт обработчика/callType, duplicate, отсутствующий элемент и любой недопустимый event отклоняют весь batch до мутации; dryRun: true использует тот же planner.
unica.form.info — посмотреть текущую структуру формыunica.form.edit — добавить в формуunica.form.validate — проверить корректностьunica.form.info — убедиться что добавилось правильно