Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:22

УНФ - ограничить права на просмотр Заказов покупателей

Автор zixi, 04 окт 2020, 16:54

0 Пользователей и 1 гость просматривают эту тему.

zixi

Здравствуйте!
Стоит задача: В "Управление нашей фирмой" (УНФ) - ограничить права сотрудников на просмотр Заказов покупателей. Т.е. чтобы сотрудники видели только свои заказы покупателей.
Есть своё расширение для УНФ.
Подскажите, пожалуйста: Как с помощью расширения и настройки RLS можно ограничить права на чтение/просмотр Заказов покупателя ?

Пока сделал так:
- добавил роль в расширение "Менеджер";
- поместил Заказ покупателя в расширение (и связанные справочники и регистр);
- добавил для роли ограничение на право Чтение:


ЗаказПокупателя ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя
ПО ЗаказПокупателя.Ответственный = СотрудникиПользователя.Сотрудник
ГДЕ СотрудникиПользователя.Пользователь = &ТекущийПользователь


Запускается вроде без ошибок, но отбор не работает.

IL2016

видеть свои заказы  - это значит смотреть в форму списка с отбором по тек.пользователю.
в расширение добавьте свою роль, документ заказ и форму списка и сделайте отбор.

zixi

Да я так и думал изначально сделать, но потом вот думаю - а вдруг менеджеры через отчёты будут смотреть заказы других. Тут наверное важно суммы от них спрятать, я так понимаю. Поэтому скрыть чужие заказы из формы списка - это конечно хорошо. Но не полностью решает проблему.
Поэтому я вот стал задумываться -  а не попробовать ли сделать это ограничение на уровне записей через RLS.

zixi

Извините, ап.
1) Выявил и добавил в расширение все роли, где есть права на чтение Заказов покупателей;
2) В расширении - убрал у всех у них права на Заказ покупателя.
Кроме одной роли - ДобавлениеИзменениеПодсистемыПродажи. На ней и экспериментирую.
3) Указанный выше код - заработал. Ура!

Но теперь вот хотелось бы оставить типовое ограничение на чтение и добавить своё новое. Как это сделать? Как их совместить?
Типовое правило:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Документ.ЗаказПокупателя","Чтение","",
"Организации","Организация", "ГруппыКонтрагентов","Контрагент", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли


Добавлено: 10 окт 2020, 12:32


Добавил в роль расширения шаблон "ПоЗначениямРасширенный" из типовой роли, доработал - тоже работает:

#Расш_ПоЗначениямРасширенный("Документ.ЗаказПокупателя", "Чтение",
"",
"ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СотрудникиПользователя КАК Т1 ПО Т.Ответственный = Т1.Сотрудник",
"",
"","Т1.Пользователь = &ТекущийПользователь", "",
"", "", "",
"", "", "",
"", "", "",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","",""
)


Но как в него добавить ограничения из шаблона "ПоЗначениям"?
Добавлено: 10 окт 2020, 13:33


Сделал вот так пока - вроде работает:

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


Если у кого есть комментарии как сделать лучше и правильнее - напишите пожалуйста!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск