api-design
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Компиляция управляемой формы 1С из JSON-определения или из метаданных объекта. Используй когда нужно создать форму с нуля по описанию элементов или по стандартному пресету объекта
$ npx -y skills add IngvarConsulting/unica --skill form-compile --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/form-compileContext preview
The summary Claude sees to decide when to auto-load this skill.
Компиляция управляемой формы 1С из JSON-определения или из метаданных объекта. Используй когда нужно создать форму с нуля по описанию элементов или по стандартному пресету объекта
name: form-compile description: Компиляция управляемой формы 1С из JSON-определения или из метаданных объекта. Используй когда нужно создать форму с нуля по описанию элементов или по стандартному пресету объекта allowed-tools: - Bash - Read - Write - Glob
операцией `form.add` на объекте-владельце, наполняется `item.add`, `attribute.add`, `command.add`, `event.bind`.
Когда пользователь поручил внести эту правку, вызови `unica.apply` только с `executionToken` из `data.executionToken` успешного плана.
Форму создаёт операция владельца: адрес — объект `<набор>:<Вид>.<Имя>`, элемент `items` называет новую форму (`name`) и её назначение (`type`). Адреса формы, которой ещё нет, назвать нельзя. Снятая `form.create` получает отказ `bad_value`, а `next` ведёт к владельцу, где исполнима `form.add`.
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "unica.apply",
"arguments": {
"at": "main:Catalog.Валюты",
"ops": [
{"op": "form.add", "args": {"items": [{"name": "ФормаЭлемента", "type": "ObjectForm"}]}}
]
}
}
}Применение первого шага публикует форму; после него её адрес принимает элементы, реквизиты и команды. Порядок тот же, что у всякой операции: превью → применение с `executionToken` → превью следующего шага → применение.
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "unica.apply",
"arguments": {
"at": "main:Catalog.Валюты.Form.ФормаЭлемента",
"ops": [
{"op": "attribute.add", "args": {"items": [{"name": "Объект", "type": "CatalogObject.Валюты", "main": true}]}},
{"op": "item.add", "args": {"items": [{"name": "Наименование", "type": "InputField", "path": "Объект.Наименование"}]}}
]
}
}
}Элементы внутрь группы добавляет `item.add` на адресе группы (`….Form.ФормаЭлемента.Item.<Группа>`), обработчик события — `event.bind` на адресе события (`….Item.<Поле>.Event.OnChange`). Группа, созданная в том же вызове, принимает элементы следующей операции с этим `args.at`.
Точечные правки готовой формы держит `form-edit`; DSL ниже описывает, как выражать внутреннее описание элементов. На публичной поверхности `items[]` использует `name` и `type`, как в примере выше; для HTML-поля — `type: "HTMLDocumentField"`. Его параметры и пример описаны в `form-edit`.
Сборки целой формы из готового JSON-определения одним вызовом на поверхности **нет**: DSL ниже остаётся справочником формата. Виды элементов, которые словарь создаёт, и виды, которые только читаются, перечислены в `form-edit`. Форма, которую не собрать этими операциями, — пробел контракта Unica MCP.
{
"title": "Заголовок формы",
"properties": { "autoTitle": false, ... },
"events": { "OnCreateAtServer": "ПриСозданииНаСервере" },
"excludedCommands": ["Reread"],
"elements": [ ... ],
"attributes": [ ... ],
"commands": [ ... ],
"parameters": [ ... ]
}| DSL ключ | XML элемент | Значение ключа | |--------------|-------------------|---------------------------------------------------| | `"group"` | UsualGroup | `"horizontal"` / `"vertical"` / `"alwaysHorizontal"` / `"alwaysVertical"` / `"collapsible"` | | `"input"` | InputField | имя элемента | | `"html"` | HTMLDocumentField | имя; события `OnClick`, `DocumentComplete` | | `"check"` | CheckBoxField | имя | | `"label"` | LabelDecoration | имя — надпись-декорация; текст задаётся `title`, гиперссылка `hyperlink` | | `"labelField"` | LabelField | имя | | `"table"` | Table | имя | | `"pages"` | Pages | имя | | `"page"` | Page | имя | | `"button"` | Button | имя | | `"cmdBar"` | CommandBar | имя | | `"autoCmdBar"` | AutoCommandBar формы | имя — наполняет главную АКП формы (id=-1), не попадает в `<ChildItems>` |
| Ключ | Описание | |------|----------| | `name` | Переопределить имя (по умолчанию = значение ключа типа) | | `title` | Заголовок элемента | | `visible: false` | Скрыть (синоним: `hidden: true`) |
Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…
Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…
Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…
Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…
Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля