Помогите с правами RLS!! Не могу разобраться

1. skala12345 25.02.19 05:35 Сейчас в теме
Если справочник контрагенты, в нем надо ограничить доступ к определенным группам, а в 1 группе надо ограничить доступ еще по отвественному менеджеру (реквизит НоваОсновнойМенеджер - ссылка на справочник пользователи) что также в группе выбирается.
Делаю так:
(Контрагенты.Родитель В
            (ВЫБРАТЬ
               контрагенты.Ссылка
            ИЗ
               справочник.контрагенты КАК контрагенты
            ГДЕ
               контрагенты.Наименование = "Перевозчики")
         ИЛИ Контрагенты.Ссылка В
            (ВЫБРАТЬ
               контрагенты.Ссылка
            ИЗ
               справочник.контрагенты КАК контрагенты
            ГДЕ
               контрагенты.Наименование = "Перевозчики")
         ИЛИ Контрагенты.Родитель В
            (ВЫБРАТЬ
               контрагенты.Ссылка
            ИЗ
               справочник.контрагенты КАК контрагенты
            ГДЕ
               контрагенты.Наименование = "Клиенты"
                                        и контрагенты.НоваОсновнойМенеджер = &ТекущийПользователь )
         ИЛИ Контрагенты.Ссылка В
            (ВЫБРАТЬ
               контрагенты.Ссылка
            ИЗ
               справочник.контрагенты КАК контрагенты
            ГДЕ
               контрагенты.Наименование = "Клиенты"
                                        и контрагенты.НоваОсновнойМенеджер = &ТекущийПользователь))
Показать

Но ограничение не срабатывает, вообще пропадает группа "Клиенты" из доступа, что я не так делаю?? И контрагенты.НоваОсновнойМенеджер.Ссылка пробовал, все равно не помогает и убирал ограничение группе клиенты. Надо, что в группе клиенты менеджер видел только "Своих" клиентов, на которые он назначен, где моя ошибка? Помогите пожайлуста!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 25.02.19 07:19 Сейчас в теме
(1) Уточните, пожалуйста, у Вас самописная конфигурация? Группа "Клиенты" отображатеся, если убрать условие отбора по менеджеру? Проверяли ли с помощью отладчика в момент обращения к справочнику контрагентов какое значение имеет параметр сеанса "ТекущийПользователь"?
3. dim_1c 25.02.19 21:00 Сейчас в теме
(1) Думаю, это то, что Вам нужно:
Контрагенты.Родитель В
		(ВЫБРАТЬ
			Контрагенты.Ссылка
		ИЗ
			Справочник.Контрагенты КАК Контрагенты
		ГДЕ
			Контрагенты.Наименование = "Перевозчики")
	ИЛИ Контрагенты.Ссылка В
		(ВЫБРАТЬ
			Контрагенты.Ссылка
		ИЗ
			Справочник.Контрагенты КАК Контрагенты
		ГДЕ
			Контрагенты.Наименование = "Перевозчики")
	ИЛИ Контрагенты.НоваОсновнойМенеджер = &ТекущийПользователь
		И Контрагенты.Родитель В
			(ВЫБРАТЬ
				Контрагенты.Ссылка
			ИЗ
				Справочник.Контрагенты КАК Контрагенты
			ГДЕ
				Контрагенты.Наименование = "Клиенты")
	ИЛИ Контрагенты.Ссылка В
		(ВЫБРАТЬ
			Контрагенты.Ссылка
		ИЗ
			Справочник.Контрагенты КАК Контрагенты
		ГДЕ
			Контрагенты.Наименование = "Клиенты")
Показать
4. skala12345 26.02.19 02:00 Сейчас в теме
(3)
Контрагенты.Родитель В
(ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Наименование = "Перевозчики")
ИЛИ Контрагенты.Ссылка В
(ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Наименование = "Перевозчики")
ИЛИ Контрагенты.НоваОсновнойМенеджер = &ТекущийПользователь
И Контрагенты.Родитель В
(ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Наименование = "Клиенты")
ИЛИ Контрагенты.Ссылка В
(ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Наименование = "Клиенты")
Показать
5. skala12345 26.02.19 02:01 Сейчас в теме
Спасибо огромное, сработало!!! Как?? Я так понимаю, что запрос к группе делаешь, потом выбираешь из нее все получившиеся ссылки, правильно?
6. dim_1c 26.02.19 09:24 Сейчас в теме
(5) Я отталкивался от Вашего решения, хотя можно сделать проще:
Контрагенты.Наименование = "Перевозчики"
	ИЛИ Контрагенты.Родитель.Наименование = "Перевозчики"
	ИЛИ Контрагенты.Наименование = "Клиенты"
	ИЛИ Контрагенты.НоваОсновнойМенеджер = &ТекущийПользователь
		И Контрагенты.Родитель.Наименование = "Клиенты"

Понятное дело, это будет работать только для конкретной ситуации: все контрагенты лежат или в Клиенты, или в Перевозчики (без подгрупп). Да и проверка по наименованию такое себе.
7. dhurricane 27.02.19 07:12 Сейчас в теме
(5) В дополнение к словам автора сообщения выше, рекомендую не использовать в RLS наименования, а добавить свои параметры сеанса с ссылками на нужных 2 контрагента, и использовать в выражении RLS уже параметры.
Оставьте свое сообщение

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