7.1 При настройке ограничения доступа к данным допускается установка нескольких ограничений
Опубликовано: Обновлено:
❓ 7.1 При настройке ограничения доступа к данным допускается установка нескольких (по числу полей) ограничений:
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: Руководство разработчика — Ограничение доступа к данным
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Когда в вопросах платформы говорится об ограничении доступа к данным, речь идет о механизме RLS (Row-level security) — ограничении доступа на уровне записей.
Обычные права роли определяют, может ли пользователь, например, читать справочник вообще. RLS позволяет дополнительно определить, какие записи этого справочника ему доступны.
Ограничения доступа к данным можно устанавливать только для тех прав, выполнение которых связано с обращением к данным информационной базы. Они могут задаваться для прав:
Чтение;Добавление;Изменение;Удаление.

Здесь есть важное отличие: для Добавление, Изменение и Удаление можно задать одно условие ограничения, а для Чтение — несколько ограничений, связанных с разными полями.
Зачем ограничение чтения связывается с полем
Заголовок раздела «Зачем ограничение чтения связывается с полем»Поле в настройке RLS определяет, при обращении к какому полю применяется соответствующее ограничение доступа к данным.
Например, ограничение задано для поля Код.
Если выполняется запрос:
ВЫБРАТЬ Контрагенты.СсылкаИЗ Справочник.Контрагенты КАК Контрагентыполе Код не используется, поэтому ограничение, заданное для него, не применяется.
Например, если в списке используется только Ссылка, а для получения представления обращение к Код не требуется, пользователь может увидеть в списке всех контрагентов.
Но если запрос обращается к Код:
ВЫБРАТЬ Контрагенты.Ссылка, Контрагенты.КодИЗ Справочник.Контрагенты КАК Контрагентыначинает применяться ограничение, заданное для поля Код. В результате доступ к записям будет определяться уже с учетом этого условия RLS.
То же самое важно учитывать и при последующем обращении к данным контрагента: если для получения необходимых данных потребуется обратиться к Код, будет применено связанное с этим полем ограничение.
Используется только Ссылка ↓Ограничение для Код не применяется ↓Происходит обращение к Код ↓Ограничение для Код применяетсяЧто такое «Прочие поля»
Заголовок раздела «Что такое «Прочие поля»»Для права Чтение в поле Поля можно указать не только конкретные поля, но и Прочие поля.
Например:
Код → Условие 1Прочие поля → Условие 2Для Код будет использоваться явно заданное для него ограничение. Прочие поля позволяют задать ограничение для полей, для которых отдельное ограничение не указано.
Для права Чтение можно задать несколько ограничений, связанных с разными полями. Для Добавление, Изменение и Удаление разделения ограничений по полям нет — для каждого из этих прав задаётся одно условие ограничения.
🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»Для права Чтение можно задать несколько ограничений для разных полей. Если ограничение задано для конкретного поля, оно применяется при обращении к этому полю, а Прочие поля позволяют задать условие для полей, которым отдельное ограничение не назначено.
Для Добавление, Изменение и Удаление разделения ограничений по полям нет.