Перейти к содержимому

7.1 При настройке ограничения доступа к данным допускается установка нескольких ограничений

Опубликовано: Обновлено:

Telegram → Просто о платформе 1С

❓ 7.1 При настройке ограничения доступа к данным допускается установка нескольких (по числу полей) ограничений:


Когда в вопросах платформы говорится об ограничении доступа к данным, речь идет о механизме RLS (Row-level security) — ограничении доступа на уровне записей.

Обычные права роли определяют, может ли пользователь, например, читать справочник вообще. RLS позволяет дополнительно определить, какие записи этого справочника ему доступны.

Ограничения доступа к данным можно устанавливать только для тех прав, выполнение которых связано с обращением к данным информационной базы. Они могут задаваться для прав:

  • Чтение;
  • Добавление;
  • Изменение;
  • Удаление.

Настройка ограничения на уровне записей

Здесь есть важное отличие: для Добавление, Изменение и Удаление можно задать одно условие ограничения, а для Чтение — несколько ограничений, связанных с разными полями.

Зачем ограничение чтения связывается с полем

Заголовок раздела «Зачем ограничение чтения связывается с полем»

Поле в настройке RLS определяет, при обращении к какому полю применяется соответствующее ограничение доступа к данным.

Например, ограничение задано для поля Код.

Если выполняется запрос:

ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты

поле Код не используется, поэтому ограничение, заданное для него, не применяется.

Например, если в списке используется только Ссылка, а для получения представления обращение к Код не требуется, пользователь может увидеть в списке всех контрагентов.

Но если запрос обращается к Код:

ВЫБРАТЬ
Контрагенты.Ссылка,
Контрагенты.Код
ИЗ
Справочник.Контрагенты КАК Контрагенты

начинает применяться ограничение, заданное для поля Код. В результате доступ к записям будет определяться уже с учетом этого условия RLS.

То же самое важно учитывать и при последующем обращении к данным контрагента: если для получения необходимых данных потребуется обратиться к Код, будет применено связанное с этим полем ограничение.

Используется только Ссылка
↓
Ограничение для Код не применяется
↓
Происходит обращение к Код
↓
Ограничение для Код применяется

Для права Чтение в поле Поля можно указать не только конкретные поля, но и Прочие поля.

Например:

Код → Условие 1
Прочие поля → Условие 2

Для Код будет использоваться явно заданное для него ограничение. Прочие поля позволяют задать ограничение для полей, для которых отдельное ограничение не указано.

Для права Чтение можно задать несколько ограничений, связанных с разными полями. Для Добавление, Изменение и Удаление разделения ограничений по полям нет — для каждого из этих прав задаётся одно условие ограничения.


Для права Чтение можно задать несколько ограничений для разных полей. Если ограничение задано для конкретного поля, оно применяется при обращении к этому полю, а Прочие поля позволяют задать условие для полей, которым отдельное ограничение не назначено.

Для Добавление, Изменение и Удаление разделения ограничений по полям нет.