Имя: Пароль:
1C
1С v8
Помогите с запросом ограничения РЛС
0 Double_Medved
 
09.02.22
09:08
Добрый день.

Среда пришла - неделя прошла

Прошу совета, с РЛС раньше не работал.

К примеру у меня Вася должен видеть "Поступления на Склад афроамериканцев", а Петя должен видеть всё - и латиноамериканцев, и т.д.

Хотел всякие отборы замутить в списке, но не круто. Еще ж ещё формы выбора, отчеты.

Сделал регистр, в котором соответствие "Вася = Склад афроамериканцев"

В свойствах роли прописал ограничение типа:

ТекущаяТаблица ГДЕ ТекущаяТаблица.ДоступныйСклад В
            (ВЫБРАТЬ
                ДоступностьПоСкладам.ДоступныйСклад КАК ДоступныйСклад
            ИЗ
                ДоступностьПоСкладам КАК ДоступностьПоСкладам
            ГДЕ
                ДоступностьПоСкладам.Пользователь = &ТекущийПользователь)

Шикарно, Вася видит только склад афроамериканцев, без танцев с бубном.

Но Петя теперь не видит ничего.

Это в принципе было понятно из запроса, но чет не пойму как дописать типа "Если в регистре пусто то показывать все"
1 Ненавижу 1С
 
гуру
09.02.22
09:10
(0) Пете дать роль без РЛС
2 fisher
 
09.02.22
12:18
Я делал по типу такого (шаблон RLS):

ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) В (&ДоступныеСклады)
  ИЛИ ТекущаяТаблица.#Параметр(1) В (&ДоступныеСклады)

Где "ДоступныеСклады" - параметр сеанса типа ФиксированныйМассив, заполняемый при начале работы системы (из того же регистра, например). Требует перезапуска сеанса при изменении доступов, зато очень шустро работает
3 fisher
 
09.02.22
12:19
Если четко по сабжу - то использовал доступ к пустому складу как признак доступа ко всем складам.
4 Курцвейл
 
09.02.22
12:25
(2) Чтобы на регистре работал шустро, надо на измерение с ограничением поставить признак Индексировать
5 Курцвейл
 
09.02.22
12:26
Либо если других ограничений нет, то просто сделать измерение Склад первым по порядку.
6 fisher
 
09.02.22
12:41
Можно конечно и типа такого прописать

ИЛИ НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ ДоступностьПоСкладам ГДЕ ДоступностьПоСкладам.Пользователь = &ТекущийПользователь

Но зачем усложнять то, что легко упрощается. А упрощение RLS - это увеличение масштабируемости.
(5) Ну, склад - это такое. У него обычно невысокая селективность. Всегда выгоднее номенклатуру первым измерением ставить. А индекс по складу - только если от этого реальный толк выходит, а не "про запас, чтобы было шустро". Иначе с высокой вероятностью этот индекс все равно использоваться не будет, а будет только место занимать и запись замедлять.