Инструменты · Права
rights_read
Читает права ролей — что даёт роль, что она даёт одному объекту (с ограничениями на уровне записей и проверкой шаблонов), шаблоны ограничений, обратный вопрос «какие роли что дают объекту» и разницу двух ролей с готовой пачкой, чтобы догнать одну до другой.
Когда использовать
- Как устроена роль — сводка по типам объектов, ограничения, шаблоны.
- Какие роли дают права на объект, включая роли расширений и роли, дающие права по умолчанию, — адрес
<объект>#rolesили<объект>сfilterпо имени права. - Перед записью —
Role.X.Rights::<объект>#help: допустимые для типа права по-английски и по-русски и наборы@read,@edit,@all. - Чем отличаются две роли —
against.
Соседние инструменты домена «Права»
Операции
Параметра operation у инструмента нет: что вернуть, задаёт адрес fqn — маркер-хвост и грань после #.
| Адрес или грань | Что возвращает |
|---|---|
Role.X.Rights или Role.X | Сводка роли #summary: типы объектов с числом и правами, шаблоны, ограничения; у небольших ролей — сразу список объектов |
Role.X.Rights#objects | Все объекты роли по типам; одинаковые наборы сворачиваются в строку «@all (27) ×148: …» |
Role.X.Rights#rls, #templates | Тексты ограничений на уровне записей; шаблоны ограничений |
Role.X.Rights::<объект> | Права объекта в роли: выданные, отклонённые (−), по умолчанию; ограничения с проверкой шаблонов ✓/✗; подчинённые узлы |
Role.X.RestrictionTemplate[.Имя] | Шаблоны ограничений роли: список с размером и использованием или тело одного |
<объект>#roles | Обратная матрица: все роли конфигурации и расширений с набором прав на объект |
<адрес>#help | Контракт rights_write по адресу с допустимыми правами типа |
Параметры
| Параметр и тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|
projectстрока | да | Идентификатор проекта рабочей области EDT — имя из ответа project_read (например, УТ2020). Для расширения — проект расширения. | — |
fqnстрока | да | Role.X.Rights с гранью, Role.X.Rights::<объект>, Role.X.RestrictionTemplate[.Имя] или адрес объекта для обратного вопроса. Русские формы тоже принимаются: Роль.X.Права::Справочник.Y. | — |
againstстрока | нет | Роль того же проекта (Role.B или Role.B.Rights) — ответ превращается в сравнение: что есть у B и нет у X (+), что есть у X и нет у B (−), по объектам, плюс готовая пачка для rights_write. Только с Role.X.Rights. | — |
limitцелое | нет | Окно чтения: сколько строк готового ответа вернуть. По умолчанию 200, максимум 1000. | 200 |
offsetцелое | нет | Окно чтения: номер строки ответа, с которой начать (0 — первая страница). Значение для следующей страницы подсказывает строка *lines: …* в конце ответа. | 0 |
filterстрока | нет | Имя права по-английски или по-русски совпадает целиком (Update не зацепит UpdateDataHistory); иное — регулярное выражение по адресу объекта, типу или имени роли. | — |
Таблица собрана из схемы инструмента, которую получает агент при подключении.
Адреса
| Адрес | Что адресует |
|---|---|
Role.БазовыеПраваБСП.Rights | сводка роли |
Role.ПолныеПрава.Rights#objects | все объекты роли |
Role.БазовыеПраваБСП.Rights::Catalog.ВариантыОтчетов | права объекта в роли |
Catalog.Номенклатура#roles | какие роли дают права на справочник |
Role.БазовыеПраваБСП.RestrictionTemplate.ДляОбъекта | шаблон ограничения |
Пример вызова и ответа
Роль закрыта поставщиком — значок 🔒 на поддержке в заголовке. Права без явной записи перечислены в Default: по ним же строится подсказка Did you mean у rights_write.
{ "project": "УТ2020", "fqn": "Role.БазовыеПраваБСП.Rights::Catalog.ВариантыОтчетов" }### 🟢 Role.БазовыеПраваБСП.Rights::Catalog.ВариантыОтчетов 🔒 на поддержке
> Σ granted 3 of 25 · denied 0 · default 22 (denied) · RLS 1 · sub-objects 0 explicit
#### Rights (3)
- Read · RLS
- View
- InputByString
#### RLS (1)
- Read
```
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
ВариантыОтчетов ГДЕ (ВариантыОтчетов.Пользовательский = ЛОЖЬ
ИЛИ ВариантыОтчетов.ТолькоДляАвтора = ЛОЖЬ
ИЛИ ВариантыОтчетов.Автор = &АвторизованныйПользователь)
#КонецЕсли
```
templates used: ДляОбъекта ✓
#### Sub-objects (0)
_(нет — реквизиты по умолчанию: setForAttributesByDefault=true; адресно: ::Catalog.ВариантыОтчетов.Attribute.<Имя>; массово: definition.sub_objects)_
#### Default (22)
_denied — без явной записи: Insert, Update, Delete, InteractiveInsert, Edit, InteractiveDelete, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractiveDeleteMarked, InteractiveDeletePredefinedData, InteractiveSetDeletionMarkPredefinedData, InteractiveClearDeletionMarkPredefinedData, InteractiveDeleteMarkedPredefinedData, ReadDataHistory, ReadDataHistoryOfMissingData, UpdateDataHistory, UpdateDataHistoryOfMissingData, UpdateDataHistorySettings, UpdateDataHistoryVersionComment, ViewDataHistory, EditDataHistoryVersionComment, SwitchToDataHistoryVersion (RLS допускают: Read, Insert, Update, Delete)_
_наборы для Catalog: @read = Read, View, InputByString · @edit = 9 · @all = 25 · контракт: …::Catalog.ВариантыОтчетов#help_Отказы и ошибки
failed · роль не найдена
Ответ называет число ролей проекта, подсказывает поиск и предлагает ближайшие имена.
### 🔴 rights_read — `Role.ЧтениеНоменклатуры2.Rights`
- **status:** 🔴 failed
- **message:** роль не найдена: ЧтениеНоменклатуры2 (проект УТ2020, ролей 4)
- **project:** УТ2020
- **fix_hint:** список ролей — search operation=symbol type=Role query="ЧтениеНоменк"
#### Did you mean
- ЧтениеНоменклатуры
- ЧтениеНоменклатурыПоставщиков
- ДобавлениеИзменениеНоменклатуры
- ПолныеПраваfailed · support: UNDETERMINED
Холодный старт: модель прав или индекс ещё не загружены. Инструмент не отдаёт пустой список, а просит повторить — подробнее.
failed · у типа нет прав
Общие модули, перечисления и роли правами не защищаются; ответ предлагает metadata_graph — кто использует объект.
failed · лицензия
Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.
Ограничения
- Обход большой роли ограничен по времени; при обрыве дайджест помечен
partial. - Имена прав печатаются по-английски (
Read,InteractiveDelete); наборы:@read— Read, View, InputByString;@edit— набор изменения по ИТС 689 без удаления;@all— все права типа.