Skip to content
Development
Skill

/form-edit

Добавление и удаление элементов, реквизитов и команд в существующей управляемой форме 1С. Используй когда нужно точечно модифицировать готовую форму

BOOST
From plugin
unica
22749 skills1 MCP
Install
$ npx -y skills add IngvarConsulting/unica --skill form-edit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/form-edit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Добавление и удаление элементов, реквизитов и команд в существующей управляемой форме 1С. Используй когда нужно точечно модифицировать готовую форму

SKILL.md

form-edit.SKILL.md
name: form-edit
description: Добавление и удаление элементов, реквизитов и команд в существующей управляемой форме 1С. Используй когда нужно точечно модифицировать готовую форму
allowed-tools:
  - Bash
  - Read
  - Write
  - Glob

/form-edit — Редактирование формы

MCP routing

  • Preferred path: use MCP `unica` tool `unica.apply` с операциями формы; адрес

цели — логический, файлового селектора у поверхности нет.

  • Не зови внутренние адаптеры напрямую: они спрятаны за MCP `unica`.
  • Сначала вызови `unica.apply` с `at` и `ops`: это план без записи.

Когда пользователь поручил внести эту правку, вызови `unica.apply` только с `executionToken` из `data.executionToken` успешного плана.

  • Словарь операций узла даёт `unica.view {at}` в словаре `can`: что не названо

там, того поверхность не пишет.

  • Поддержку объекта проверяет сама операция; заблокированный поставщиком

объект правится через расширение, а не правкой метаданных поддержки.

Добавляет и удаляет элементы, реквизиты и команды существующей управляемой формы. Идентификаторы, companion-элементы (`ContextMenu`, `ExtendedTooltip` и прочие) и привязки событий собирает сама операция.

Адрес и операции

Предмет операции задаёт адрес `at`: форма, её элемент любой вложенности или событие формы и элемента. Адреса элементов и событий берутся из ответа `unica.view` на узле формы и в ветвях `Item` и `Event`; имя набора даёт `unica.view {}`, адрес по имени объекта — `unica.search {corpus: "names"}`.

| Адрес `at` | Операции | |---|---| | `<набор>:<Вид>.<Имя>.Form.<Форма>` | `item.add` в корень формы, `attribute.add`, `command.add`, `form.remove` | | `….Form.<Форма>.Item.<Группа>[.Item.<Вложенная>…]` — контейнер | `item.add` внутрь контейнера, `item.remove` самого контейнера | | `….Item.<Поле>` — поле, декорация, кнопка | `item.remove` | | `….Item.<ФормаКоманднаяПанель>`, `….Item.<Таблица>.Item.<ТаблицаКоманднаяПанель>` | `item.add` кнопки в автоматическую командную панель | | `….Form.<Форма>[.Item.<Элемент>…].Event.<Событие>` | `event.bind`, `event.implement` | | `<набор>:<Вид>.<Имя>` | `form.add`, `form.set` |

Контейнер — группа, страницы, страница, таблица, группа колонок, командная панель, группа кнопок, подменю. Автоматическая командная панель формы и таблицы видна элементом `Item` и принимает кнопки; удаляется она только вместе с владельцем. `ColumnGroup` и её колонки видны в `view` и адресуются полной цепочкой `Item`. Точный набор операций узла — в его словаре `can`.

Закрытый контракт операции

Подробный контракт операции читается адресом `<узел>.Can.<операция>`, например `main:Catalog.Номенклатура.Form.ФормаЭлемента.Can.item.add`. Он перечисляет ровно те ключи, которые записывает писатель операции. Ключ вне контракта, значение не того типа или вне перечисления получают `bad_value` с точным путём (`ops[0].args.items[0].backColor`) до записи: операция не теряет его молча.

`item.add` добавляет один элемент без вложенного содержимого. Ключи элемента зависят от его `type`: например, `backColor` и `font` пишет только кнопка, а `title` не пишут таблица и поле надписи. Вложенный элемент добавляется отдельным `item.add` на адресе контейнера (`….Item.<Группа>`), обработчик — `event.bind` на адресе события (`….Item.<Элемент>.Event.<Событие>`) с явным именем. Ключи `children`, `columns`, `elements`, `commandBar`, `autoCmdBar`, `autoCommandBar`, `contextMenu`, `extendedTooltip`, `html`, `on` и `handlers` получают `bad_value`, а `next` ведёт к контракту `item.add`. Командная панель принимает только кнопки: её контракт публикует один вид `Button`. Группа и поле в ней добавляются в одном вызове двумя операциями: вторая адресует группу через `args.at`.

`attribute.add` пишет `name`, `title` (строка), `type`, `main`, `savedData`, `fillChecking` и `columns` реквизита-таблицы. Проверка заполнения `"fillChecking": "ShowError"` записывается тегом `<FillCheck>`; без ключа проверки нет. Просмотр и редактирование (`view`, `edit`), функциональные опции, `useAlways`, `save`, `valueType`, настройки динамического списка и видимость по ролям этой операцией не пишутся и получают `bad_value`.

Прежние аргументы, которые называли элемент или событие, сняты: `items[].into` у `item.add`, `items[].name`, элемент-строка `items[]` и `values.name` у `item.remove`, `values.element` и `values.event` у `event.bind`. Вызов с ними получает `bad_value`, а `next` ведёт к адресу узла, который называло значение. Прежние имена `element.add`, `element.remove`, `formAttribute.add` и `formCommand.add` тоже сняты: вызов получает `bad_value` без записи. Если заменившая (`item.add`, `item.remove`, `attribute.add` или `command.add` формы) исполнима на адресе вызова или на его предке, `next` ведёт к её контракту `<узел>.Can.<операция>` на ближайшем таком узле. Если такого узла нет — например, `element.remove` на самой форме или на автоматической командной панели, — отказ называет форму адреса, а `next` ведёт к словарю узла.

Реквизит и команда формы добавляются теми же именами, что у объекта метаданных: `attribute.add` и `command.add` на адресе формы пишут в форму, а на адресе объекта — в его описание. Контракт по адресу `<форма>.Can.attribute.add` — контракт реквизита формы.

`command.add` добавляет команды формы. Элемент `items[]` принимает `name`, `title`, `tooltip`, `action`, `shortcut`, `picture`, `representation`; другой ключ отклоняется до записи. Контракт — `<форма>.Can.command.add`.

MCP вызов

Поле в группу шапки — `item.add` на адресе группы. Сосед `after` называет элемент того же контейнера, после которого встаёт новый:

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Catalog.Номенклатура.Form.ФормаЭлемента.Item.ГруппаШапка",
      "ops": [
        {
          "op": "item.add",
          "args": {
            "items": [
              {"name": "Артикул", "type": "InputField", "path": "Объект.Артикул", "after": "Код"}
            ]
          }
        }
      ]
    }
  }
Read more
Ships withunica

Unica (Ю&#x301;ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.

Get the whole plugin

Other skills on unica.

api-design
Skill

api-design

Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…

autonomous-server
Skill

autonomous-server

Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…

background-jobs
Skill

background-jobs

Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…

bsp-patterns
Skill

bsp-patterns

Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…

cf-edit
Skill

cf-edit

Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…

cf-init
Skill

cf-init

Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля