# Доступ по ролям Единый механизм платформы для разграничения по ролям: задаётся общее значение для всех ролей плюс исключения для конкретных ролей. Один и тот же формат значения у четырёх ключей — каждый на своём владельце: | Ключ | Владелец | Смысл | |------|----------|-------| | `userVisible` | элемент формы | пользовательская видимость элемента | | `view` | реквизит формы | право просмотра | | `edit` | реквизит формы | право редактирования | | `use` | команда формы | доступность команды | Ключ необязателен: его отсутствие = полный доступ для всех ролей. ## Значение Две формы (одинаковы для всех четырёх ключей): **Скаляр** `true` / `false` — общее значение для всех ролей, без исключений: ```json { "input": "Поле", "userVisible": false } ``` **Объект** `{ "common": , "roles": { "ИмяРоли": , … } }` — общее значение `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 } } } ```