Документация Формулы
Разделы документации

Руководство

Обзор руководства

Бизнес-процессы и задачи

Бизнес-процессы и задачи

КОНСТРУКТОР

Ограничения данных (RLS)

Ограничения данных (Row-Level Security, RLS) — это правила, которые определяют, какие записи видит пользователь. В отличие от обычных прав (может ли пользователь открыть справочник), RLS ограничивает данные внутри объекта.

Типовой пример: продавец видит только свои заказы, кладовщик — только товары своего склада.

RLS настраивается для группы пользователей, в карточке группы, раздел «Ограничения данных».

# Что написано на экране

Заголовок — «Ограничения данных» с числом условий, пояснение:

Ограничения уровня записей (RLS): пользователи группы будут видеть только записи, соответствующие условию. Применяется в списках, формах, поиске и отчётах.

Ограничения применяются во всех серверных чтениях: списки, открытие карточки, глобальный поиск, API и чтение данных из модулей (а значит, и в отчётах).

# Быстрые шаблоны

Над списком условий есть кнопки-шаблоны:

ШаблонЧто добавляет
Только свои записиДля всех справочников и документов условие «Автор (creater) = Текущий пользователь»
Только свой складДля объектов, где есть поле Склад, — условие «Склад = Поле пользователя «Склад»
Только свой филиалДля объектов с полем Филиал — условие «Филиал = Поле пользователя «Филиал»

Повторное нажатие на шаблон не создаёт дубликат: одинаковые условия пропускаются.

Кнопка Добавить условие создаёт пустое условие вручную.

# Одно условие

Каждое условие — это строка с шестью настройками:

НастройкаЧто означает
ОбъектСправочник или документ, к которому применяется ограничение
ПолеРеквизит, по которому сравнивается. Служебное поле creater (автор) есть у каждого объекта
Оператор= (равно), ≠ (не равно), в списке, содержит
ЗначениеС чем сравнивать. Здесь два списка: источник значения и само значение
РежимСкрыть или Запретить
🗑Удалить условие

Под условием появляется «пилюля» с итоговым фильтром: «Фильтр группы: <условие>», а для режима «Запретить» — дополнительно (запрет чтения).

# Источник значения

ИсточникЧто подставляетсяПоле для ввода
КонстантаЗначение, которое вы вводите. Можно перечислить несколько значений через запятую — тогда работает как списокПоле «Значение (через запятую — список)»
Тек. пользовательТекущий пользователь системы— (просто надпись «Текущий пользователь»)
Поле пользователяЗначение реквизита пользователя, например его складПоле «Поле пользователя, напр. Склад»
ГруппыГруппы текущего пользователя— (надпись «Группы пользователя»)

# Режим: скрыть или запретить

РежимЧто происходит с записью, не подходящей под условиеЧто происходит с записью, подходящей под условие
СкрытьОна просто не видна: как будто её нетВидна
ЗапретитьВиднаЧтение запрещено (ошибка доступа)

Проще говоря: Скрыть — «не показывай лишнее», Запретить — «покажи, но не давай открыть».

Внимание: в режиме Запретить смысл условия обратный — запрещается то, что совпадает с условием. Это удобно для запретов: «запретить чтение документов своего склада».

# Если условий нет

Экран показывает:

⛃
Нет ограничений — группа видит все записи объектов
Добавьте условие или используйте шаблон

# Как работают несколько условий

СитуацияПоведение
У группы несколько условий по разным объектамКаждое действует на свой объект
Пользователь в нескольких группахУсловия объединяются по «наименее ограничивающему» правилу для чтения
Пользователь — администраторОграничения не применяются

# Примеры

Продавец видит только свои заказы. Объект Заказ покупателя, Поле creater, Оператор =, Источник Тек. пользователь, Режим Скрыть. Проще: шаблон Только свои записи.

Кладовщик — только свой склад. Объект Остатки товаров (или Приходная накладная), Поле Склад, Оператор =, Источник Поле пользователя → Склад, Режим Скрыть.

Запретить чтение документов чужого склада. Объект Приходная накладная, Поле Склад, Оператор ≠, Источник Поле пользователя → Склад, Режим Запретить. Так обычные записи открываются, а чужие — нет.

# Частые ошибки

ОшибкаПоследствие
Условие по полю, которого нет в объектеУсловие не сработает — проверьте список полей
Забыли выбрать ОбъектУсловие не применяется
Ожидание, что RLS действует только в спискахRLS действует везде: карточка, поиск, отчёты, API
Расчёт на доступ администратораАдминистраторы обходят RLS — тестируйте на обычном пользователе

# Смотрите также