Skip to content
Back to skills

Interface Edit

ASecurity

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

  • 215 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 11, 2026
tools

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add IngvarConsulting/unica --skill interface-edit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Interface Edit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Interface Edit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ingvarconsulting-interface-edit/badge)](https://www.skillsdirectory.com/skills/ingvarconsulting-interface-edit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: interface-edit
description: Настройка командного интерфейса подсистемы 1С. Используй когда нужно скрыть или показать команды, разместить в группах, настроить порядок
argument-hint: <at> <ops>
allowed-tools:
  - Read
  - Glob
---

# /interface-edit — правка командного интерфейса

## MCP routing

- Preferred path: use MCP `unica` tool `unica.apply` с операциями
  `commandVisibility.set`, `commandPlacement.set`, `commandOrder.set`,
  `groupOrder.set` и `subsystemOrder.set`.
- Do not call internal MCP/CLI adapters directly. They are hidden behind
  `unica` and synchronized by the orchestrator.
- Интерфейс называет адрес: `args.at` вида
  `<набор>:Subsystem.<Имя>.Interface`. Пути к `CommandInterface.xml` наружу
  нет; путь из диффа или лога переводит в адрес аварийный `unica.resolve`.
- Сначала вызови `unica.apply` с `at` и `ops`: это план без записи.
  Когда пользователь поручил внести эту правку, вызови `unica.apply` только
  с `executionToken` из `data.executionToken` успешного плана.

**Команда лежит в аргументах, а не в адресе.** Имя команды в интерфейсе — это
ссылка на команду, живущую в другом месте (`CommonCommand.Печать`,
`Catalog.Валюты.Command.Создать`). Адрес несёт интерфейс, потому что предмет
правки — место, которое подсистема команде отводит, а не сама команда.

## Операции

| Операция | `at` | `args` | Секция файла |
|---|---|---|---|
| `commandVisibility.set` | `…Subsystem.<Имя>.Interface` | `items: [{command, visible}]` | `CommandsVisibility` |
| `commandPlacement.set` | `…Subsystem.<Имя>.Interface` | `items: [{command, group?, placement?}]` | `CommandsPlacement` |
| `commandOrder.set` | `…Subsystem.<Имя>.Interface` | `values: {group, commands: […]}` | `CommandsOrder` |
| `groupOrder.set` | `…Subsystem.<Имя>.Interface` | `values: {groups: […]}` | `GroupsOrder` |
| `subsystemOrder.set` | `<набор>:Configuration` | `values: {subsystems: […]}` | `SubsystemsOrder` |

Вложенная подсистема адресуется всей цепочкой:
`main:Subsystem.Администрирование.Subsystem.КонтрольРаботыПользователей.Interface`.
Одноимённая подсистема в другом месте целью не становится.

**Порядок подсистем верхнего уровня метит в корень конфигурации.** Корневой
документ несёт единственную секцию, поэтому узла у него нет — он описан
свойством корня. На интерфейсе подсистемы `subsystemOrder.set` отклоняется.

**Порядок — перестановка сохранённого состава.** Три операции порядка
принимают полную последовательность тех же элементов, что уже сохранены:
у `commandOrder.set` — команд названной группы, у `groupOrder.set` — групп,
у `subsystemOrder.set` — подсистем. Пропуск, повтор или лишний элемент
отклоняются без записи: пропуск не удаляет настройку. Прочитай текущий
порядок в `unica.view` и переставь его. Если порядка ещё нет, список
задаёт его впервые. Порядок других групп и остальные секции файла
не меняются.

**Каждая операция правит свою секцию и ничью больше.** В частности, правка
видимости касается только общего значения: переопределения по ролям в том же
блоке остаются нетронутыми. Их число видно в чтении полем `roleOverrides` —
если оно не ноль, `visible` не вся правда о видимости команды.

## Порядок

1. Найди подсистему: `unica.search {corpus: "names", kind: "Subsystem"}`.
2. Прочти интерфейс: `unica.view {at: "…Subsystem.<Имя>.Interface"}` — ветви
   `Command`, `Group` и `Subsystem` показывают команды, порядок групп и
   порядок дочерних подсистем.
3. Предпросмотр: `unica.apply` с `at` и `ops`; ответ несёт план и `data.executionToken`.
4. Применение: вызов только с `executionToken` из `data.executionToken` успешного плана.

## Примеры

### Скрыть одну команду и показать другую

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Subsystem.Продажи",
      "ops": [
        {
          "op": "commandVisibility.set",
          "args": {
            "at": "main:Subsystem.Продажи.Interface",
            "items": [
              {"command": "Catalog.Товары.StandardCommand.OpenList", "visible": false},
              {"command": "Report.Продажи.Command.Отчёт", "visible": true}
            ]
          }
        }
      ]
    }
  }
}
```

### Разместить команду и задать порядок в группе

Пример задаёт порядок группы, у которой его ещё нет. Если порядок уже
сохранён, `commands` перечисляет ровно его команды в новом порядке:
только что размещённую команду в сохранённый порядок группы так не добавить,
такой список отклоняется.
Сначала получи план этого изменения:

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Subsystem.Продажи",
      "ops": [
        {
          "op": "commandPlacement.set",
          "args": {
            "at": "main:Subsystem.Продажи.Interface",
            "items": [
              {
                "command": "Report.Продажи.Command.Отчёт",
                "group": "NavigationPanelImportant"
              }
            ]
          }
        },
        {
          "op": "commandOrder.set",
          "args": {
            "at": "main:Subsystem.Продажи.Interface",
            "values": {
              "group": "NavigationPanelImportant",
              "commands": [
                "Report.Продажи.Command.Отчёт",
                "Catalog.Товары.StandardCommand.OpenList"
              ]
            }
          }
        }
      ]
    }
  }
}
```

Для исполнения передай `data.executionToken` из этого успешного плана:

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "executionToken": "<data.executionToken из успешного плана>"
    }
  }
}
```

### Порядок подсистем верхнего уровня

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Configuration",
      "ops": [
        {
          "op": "subsystemOrder.set",
          "args": {
            "at": "main:Configuration",
            "values": {"subsystems": ["Subsystem.Продажи", "Subsystem.Склад"]}
          }
        }
      ]
    }
  }
}
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.