1. Общие механизмы, понятия и термины
#53

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

Вы настраиваете в конфигураторе ограничения доступа к данным (RLS) в составе роли и хотите использовать «шаблоны ограничений», чтобы не дублировать одинаковые фрагменты условий. Сколько параметров можно описать в одном шаблоне, чтобы затем передавать их значения при использовании шаблона в конкретном ограничении?

Только один параметр - при применении шаблона можно передать лишь одно значение
Неправильно: текст шаблона может содержать несколько параметров (обычно вида #Параметр(1), #Параметр(2) и т.д.), поэтому шаблон не ограничен одним параметром.
Можно задать сколько угодно параметров - при использовании шаблона значения передаются для каждого параметра
Правильно: в шаблоне допускается любое количество параметров, а при подстановке шаблона в конкретное ограничение им передают значения, которые заменят соответствующие #Параметр(n) в тексте условия.
Параметры в шаблонах не поддерживаются - шаблон всегда без параметров
Неправильно: один из смыслов шаблонов как раз в том, что они могут содержать параметры, чтобы один и тот же фрагмент условия переиспользовать с разными значениями.
Суть шаблонов - это только описание параметров, а текст ограничения в них не задают
Неправильно: шаблон включает фрагмент текста на языке ограничений доступа (условие/часть условия), а параметры - лишь опциональный механизм подстановки значений внутрь этого текста.

Пояснение

Расширенная подсказка: 1) Где это настраивается В роли есть вкладка «Шаблоны ограничений», где для каждого шаблона задают имя и текст. Этот текст - фрагмент условия на языке ограничений доступа к данным, который затем вставляется в конкретные ограничения прав (Чтение/Добавление/Изменение/Удаление) для объектов. 2) Как выглядят параметры шаблона В тексте шаблона параметры указывают как #Параметр(1), #Параметр(2), #Параметр(3) и т.д. Нумерация и есть «контракт»: при использовании шаблона в ограничении вы передаете значения, которые подставятся на места этих параметров. 3) Мини-пример (идея) Если вы делаете доступ «только по своей организации и своему подразделению», удобно один раз создать шаблон с двумя параметрами: • параметр 1 - организация, • параметр 2 - подразделение. Дальше в каждом конкретном ограничении вы просто указываете шаблон и передаете значения (например, из параметров сеанса), вместо того чтобы копировать длинный текст условия. 4) Почему это важно для «Ведомости в кассу» и автозаполнения Кнопка «Заполнить» в выплатных ведомостях обычно собирает сотрудников и суммы к выплате запросами к расчетным данным. Если права/ограничения настроены так, что пользователь не видит часть документов расчета, регистров или сотрудников (например, из-за RLS по организациям/подразделениям), ведомость может: • заполниться частично (не все сотрудники), • не заполниться вообще (пусто), • показывать «не те» суммы (видна не вся база расчета). Поэтому при проектировании RLS для зарплаты тестируйте автозаполнение ведомостей под учетной записью с целевой ролью. 5) Практические рекомендации • Делайте шаблоны параметризованными, чтобы одинаковая логика ограничения была единообразной по всей конфигурации. • Используйте параметры сеанса/контекстные значения как источники для параметров шаблонов, чтобы доступ зависел от пользователя. • После внедрения RLS обязательно проверяйте: видимость сотрудников, документов «Начисление зарплаты и взносов», регистров расчетов и корректность заполнения «Ведомости в кассу». • Если ведомость не заполняется, кроме прав проверьте типовые причины: рассчитана ли зарплата за период, выбран ли правильный вид выплаты, и соответствует ли место выплаты сотрудника типу ведомости (касса/банк).