Files
cc-1c-skills/.claude/skills/form-compile/references/command-interface.md
T
Nick Shirokov 09d7097476 feat(form-compile): авторские references + индекс, корректность наборов значений
Каскад инструкции: ядро SKILL.md покрывает большинство задач, для редких/нишевых
конструкций — 12 тематических файлов в references/ (по индексу в SKILL.md).
Контракт references: только «как собрать DSL для задачи» — без механики эмиссии,
синонимов, авторезолва и forgiving (это тихая помощь модели); ссылки только внутри
навыка; область строго по элементу-владельцу.

Корректность ядра (наборы значений выверены по корпусу + доменно, forgiving/legacy
исключены из авторских):
- group расцеплён: ориентация (vertical/horizontalIfPossible/alwaysHorizontal) +
  отдельный ключ behavior (collapsible/popup) — popup-группы стали выразимы;
- titleLocation: полный набор none/left/right/top/bottom/auto;
- commandBarLocation += Bottom; searchStringLocation += Bottom/CommandBar/PullFromTop;
- общее свойство tooltip; events: null → авто-имя обработчика; правило уникальности имён.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 13:16:22 +03:00

4.6 KiB

Командный интерфейс формы

Форменный ключ commandInterface управляет расстановкой команд по двум панелям формы:

  • commandBar — командная панель формы;
  • navigationPanel — панель навигации.

Указывать нужно только команды, у которых меняется расстановка по умолчанию (видимость, группа, порядок). Команды, которые платформа размещает автоматически и без изменений, в блок не включают.

"commandInterface": {
  "commandBar": [
    { "command": "Form.Command.Печать", "defaultVisible": false, "group": "FormCommandBarImportant",
      "visible": { "common": false, "roles": { "Бухгалтер": true } } },
    "CommonCommand.История"
  ],
  "navigationPanel": {
    "important": [ { "command": "CommonCommand.СвязанныеДокументы", "defaultVisible": false, "visible": false } ],
    "seeAlso":   [ { "command": "CommonCommand.Заметки", "defaultVisible": false, "visible": false } ]
  }
}

Элемент-команда

Каждый элемент панели — объект, либо строка-shorthand (= голый command со всеми остальными свойствами по умолчанию):

"CommonCommand.История"
Ключ Тип Назначение
command string Ссылка на команду дословно: CommonCommand.X, Document.X.StandardCommand.Y, Form.Command.X, Form.StandardCommand.OK, "0" (пустой / разделитель)
type string Auto (по умолчанию, необязательно) или Added
defaultVisible bool Видимость по умолчанию. На практике задаётся только false — чтобы скрыть команду, которая иначе видна
visible bool / object Видимость с исключениями по ролям: bool либо { "common": bool, "roles": { "Имя": bool } }
group string Группа размещения дословно: предопределённая (FormCommandBarImportant, FormNavigationPanelGoTo, …), именованная (CommandGroup.X) или GUID-группа расширения
index int Порядок команды внутри группы
attribute string Путь реквизита для элемента панели навигации

Две формы записи панели

Панель можно описать плоским массивом или деревом по группам — выбирайте любую.

Плоский массив — каждый элемент при необходимости несёт собственный group:

"commandBar": [
  { "command": "Form.Command.Печать", "group": "FormCommandBarImportant", "defaultVisible": false },
  { "command": "CommonCommand.История", "group": "FormCommandBarImportant", "index": 1 }
]

Дерево — объект { группа: [команды] }; группа берётся из ключа, элементы её не повторяют:

"navigationPanel": {
  "important": [ "CommonCommand.СвязанныеДокументы" ],
  "goTo":      [ { "command": "Document.Заказ.StandardCommand.Movements", "defaultVisible": false, "visible": false } ],
  "seeAlso":   [ "CommonCommand.Заметки" ]
}

Ключи-группы дерева зависят от панели:

  • navigationPanel: important, goTo, seeAlso (можно по-русски — важное, перейти, смТакже);
  • commandBar: important, createBasedOn;
  • любой другой ключ (CommandGroup.X или GUID) подставляется в группу дословно.

Скрыть видимую команду

Самый частый случай — убрать команду, которую платформа показывает по умолчанию:

"commandBar": [
  { "command": "Form.Command.Печать", "defaultVisible": false, "visible": false }
]

Показать команду только некоторым ролям:

{ "command": "Form.Command.Печать", "defaultVisible": false,
  "visible": { "common": false, "roles": { "Бухгалтер": true } } }