mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 16:20:54 +03:00
Каскад инструкции: ядро 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>
74 lines
3.0 KiB
Markdown
74 lines
3.0 KiB
Markdown
# Доступ по ролям
|
|
|
|
Единый механизм платформы для разграничения по ролям: задаётся общее значение для всех ролей плюс исключения для конкретных ролей. Один и тот же формат значения у четырёх ключей — каждый на своём владельце:
|
|
|
|
| Ключ | Владелец | Смысл |
|
|
|------|----------|-------|
|
|
| `userVisible` | элемент формы | пользовательская видимость элемента |
|
|
| `view` | реквизит формы | право просмотра |
|
|
| `edit` | реквизит формы | право редактирования |
|
|
| `use` | команда формы | доступность команды |
|
|
|
|
Ключ необязателен: его отсутствие = полный доступ для всех ролей.
|
|
|
|
## Значение
|
|
|
|
Две формы (одинаковы для всех четырёх ключей):
|
|
|
|
**Скаляр** `true` / `false` — общее значение для всех ролей, без исключений:
|
|
|
|
```json
|
|
{ "input": "Поле", "userVisible": false }
|
|
```
|
|
|
|
**Объект** `{ "common": <bool>, "roles": { "ИмяРоли": <bool>, … } }` — общее значение `common` плюс явные исключения по ролям:
|
|
|
|
```json
|
|
{ "name": "Реквизит",
|
|
"edit": { "common": false, "roles": { "ПолныеПрава": true } } }
|
|
```
|
|
|
|
Роль, **не указанная** в `roles`, наследует `common`. Указанная — задаёт явный `true`/`false` (может и совпадать с `common`).
|
|
|
|
## Имя роли
|
|
|
|
Ключи в `roles` — имена ролей конфигурации (`ПолныеПрава`, `Бухгалтер`, …).
|
|
|
|
## Примеры
|
|
|
|
Элемент скрыт у всех пользователей:
|
|
|
|
```json
|
|
{ "input": "Комментарий", "userVisible": false }
|
|
```
|
|
|
|
Реквизит не виден никому и редактируется только одной ролью:
|
|
|
|
```json
|
|
{ "name": "СуммаБонуса",
|
|
"view": false,
|
|
"edit": { "common": false, "roles": { "ПолныеПрава": true } } }
|
|
```
|
|
|
|
Поле доступно для просмотра всем, но редактируемо только администратору:
|
|
|
|
```json
|
|
{ "name": "Статус",
|
|
"view": true,
|
|
"edit": { "common": false, "roles": { "Администратор": true } } }
|
|
```
|
|
|
|
Команда недоступна по умолчанию, разрешена только бухгалтеру:
|
|
|
|
```json
|
|
{ "name": "ПровестиЗакрытие",
|
|
"use": { "common": false, "roles": { "Бухгалтер": true } } }
|
|
```
|
|
|
|
Обратный случай — доступно всем, кроме одной роли:
|
|
|
|
```json
|
|
{ "name": "РедактироватьЦену",
|
|
"edit": { "common": true, "roles": { "Кладовщик": false } } }
|
|
```
|