Производительный RLS БСП - возможно ли использование параметров запроса RLS из параметров сеанса? Как?

1. acces969 353 11.11.22 14:32 Сейчас в теме
Вот в этом ограничении (вставляется в модуле менеджера объекта)
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
	
	Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т //Исходный объект с его реквизитами	
	|ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаспределениеПолномочий КАК Т2 //присоединяем другие объекты	
	|	ПО Т2.Полномочия= Т.Полномочия//можем использовать необходимые поля в соединениях	
	|            И Т2.Пользователь = &ТекущийПользователь // Вопрос об этом
	|;	
	|РазрешитьЧтениеИзменение	
	|ГДЕ	
	|	ЗначениеРазрешено(Т.ххх) //ограничение из основного объекта	
	|	И ЗначениеРазрешено(Т2.ххх)//ограничение через реквизиты другого объекта";
	
КонецПроцедуры
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
5. acces969 353 11.11.22 15:36 Сейчас в теме +4 $m
Оказывается, есть нужная функция в тексте запроса: ЭтоАвторизованныйПользователь()
Рабочий способ:

Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т 						
	|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаспределениеПользователейПоРабочимГруппам КАК Распределение 								
	|	ПО Распределение.РабочаяГруппа = Т.РабочаяГруппа 				
	|		
	|;	
	|РазрешитьЧтениеИзменение	
	|	ГДЕ	
	|	ЗначениеРазрешено(Т.Ссылка)
	|	И ЭтоАвторизованныйПользователь(Распределение.Пользователь)";
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1278383 5 11.11.22 14:44 Сейчас в теме
А так разве не работает?
acces969; +1 Ответить
3. user1278383 5 11.11.22 14:47 Сейчас в теме
по крайней мере в ограничениях доступа (те, что для ролей )&ТекущийПользователь устанавливается из параметров сеанса
acces969; +1 Ответить
4. user1278383 5 11.11.22 15:22 Сейчас в теме
такого вида ограничения нужна вставлять в права ролей. Из описания в ИТС внутреннее соединение нельзя сделать, только левое. А если делать левое, даже если параметры сеанса передадутся, то ограничение не сработает.
acces969; +1 Ответить
5. acces969 353 11.11.22 15:36 Сейчас в теме +4 $m
Оказывается, есть нужная функция в тексте запроса: ЭтоАвторизованныйПользователь()
Рабочий способ:

Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т 						
	|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаспределениеПользователейПоРабочимГруппам КАК Распределение 								
	|	ПО Распределение.РабочаяГруппа = Т.РабочаяГруппа 				
	|		
	|;	
	|РазрешитьЧтениеИзменение	
	|	ГДЕ	
	|	ЗначениеРазрешено(Т.Ссылка)
	|	И ЭтоАвторизованныйПользователь(Распределение.Пользователь)";
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот