Skip to content
Back to skills

Role Edit

ASecurity

Типизированно изменить права существующей роли 1С по логическому адресу, сохранив RLS, шаблоны и остальные права.

  • 213 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentsgit

Works with

  • mcp

Security analysis

A100/100

Scanned October 3, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Role Edit?

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

Security grade badge for Role Edit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ingvarconsulting-role-edit/badge)](https://www.skillsdirectory.com/skills/ingvarconsulting-role-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: role-edit
description: Типизированно изменить права существующей роли 1С по логическому адресу, сохранив RLS, шаблоны и остальные права.
argument-hint: <at> <operations>
allowed-tools:
  - Read
  - Glob
---

# /unica:role-edit — точечное редактирование прав роли

## MCP routing

- Preferred path: use MCP `unica` tool `unica.apply` с операцией `right.set`.
- Роль называет адрес: `args.at` вида `<набор>:Role.<Имя>`. Физический
  `Rights.xml` — внутренняя деталь; наружу путь отдаёт только аварийный
  `unica.resolve`, и в обычном ходе работы он не нужен.
- Имя набора даёт `unica.view {}`, адрес роли по имени —
  `unica.search {corpus: "names", kind: "Role"}`. `"main"` ниже только пример.
- Сначала вызови `unica.apply` с `at` и `ops`: это план без записи.
  Когда пользователь поручил внести эту правку, вызови `unica.apply` только
  с `executionToken` из `data.executionToken` успешного плана.
- Читай из ответа `changed`, `effects` по порядку операций и диагностики.
  Физический путь и diff контрактом результата не являются.

## Операция `right.set`

`args.values` принимает `object`, `right` и хотя бы одно из `value` и `rls`:

| Поле | Что задаёт |
|---|---|
| `object` | Объект метаданных, например `Catalog.Демо` |
| `right` | Имя права, например `Delete` |
| `value` | Булево значение права |
| `rls` | Условие ограничения записей |

Операции выполняются по порядку и публикуются одной транзакцией: либо все,
либо ни одной. Повтор эквивалентной операции даёт `changed: false` без записи.

**Объект, ещё не перечисленный в роли, добавляется сам.** Прежний писатель
отказывал `object_not_listed` и требовал сперва внести объект Конфигуратором;
канонический `right.set` заводит объектный блок вместе с правом.

Платформа хранит объектное право только со значением, отличным от умолчания
роли `setForNewObjects`. Поэтому `right.set` со значением умолчания (обычно
`false`) удаляет элемент права вместе с его RLS, а опустевший объектный блок —
целиком; если право уже отсутствует, это законный no-op.

Автоматическое включение зависимых прав в согласуемый preview ещё не
реализовано ([задача #941](https://github.com/IngvarConsulting/unica/issues/941)).
До реализации проверь доказанные зависимости и согласуй полный набор прав
с человеком. Не считай одиночный `right.set` проверкой полноты этого набора.

Для `DataProcessor.*` значение `Use=false` применяет правило платформы:
удаляется весь объектный блок вместе с зависимым правом `View`. На другие виды
объектов и права это не обобщается.

## MCP examples

### Предпросмотр

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Role.Демо",
      "ops": [
        {
          "op": "right.set",
          "args": {
            "at": "main:Role.Демо",
            "values": {
              "object": "Catalog.Демо",
              "right": "Delete",
              "value": false
            }
          }
        }
      ]
    }
  }
}
```

### Право с ограничением записей

Сначала получи план этого изменения:

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Role.Демо",
      "ops": [
        {
          "op": "right.set",
          "args": {
            "at": "main:Role.Демо",
            "values": {
              "object": "Document.Заказ",
              "right": "Read",
              "value": true,
              "rls": "ГДЕ Автор = &Пользователь"
            }
          }
        }
      ]
    }
  }
}
```

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

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

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.