0. EvilDoc 168 19.06.13 00:57 Сейчас в теме

Доработки RLS. Примеры шаблонов. (в т.ч исключения из ограничений)

Допиливаем шаблоны RLS.

Даем доступ пользователям к некоторым объектам

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. anig99 2711 19.06.13 11:35 Сейчас в теме
В чем ноу-хау? Всё это есть в типовых.
34. timujeen 05.12.17 15:33 Сейчас в теме
Решал аналогичную задачу но в качестве носителя информации для ограничения использовал Параметры пользователя.
Для регистров например запрос выглядет так:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ
(ТекущаяТаблица.Сотрудник В(&СписокДоступныхСотрудников   )  )

Есть проблема в предоставлении пользоваетлю права для записи пустого документа, так как у меня не запрещенные подразделения, а наоборот разрешенные. Пытался использовать:
НЕ ТабличнаяЧастьДокумента.НомерСтроки В(1)
- проверку на наличия первой строки в документе, но не помогло.
2. crs 22 19.06.13 16:43 Сейчас в теме
В типовых нельзя сделать исключение RLS. Если запретил организацию, пользователь ни при каких условиях ни ее, ни связанные объекты видеть не будет
5. anig99 2711 21.06.13 13:44 Сейчас в теме
(2) А. Увидел. Вообще ещё есть вариант не давать доступ к объекту, но дать доступ к ссылке и некоторым реквизитам.
7. EvilDoc 168 23.06.13 03:33 Сейчас в теме
(5) В первый раз слышу. Был бы счастлив узнать о подобном механизме - то есть давать доступ к уникальной ссылке и к определенным реквизитам в обход RLS типовыми или более простыми, нежели мной предложенный, способами =) Буду рад любой информации.

(6) РЛС работает чуточку быстрее прочих систем контроля доступа, представленные, к примеру, здесь http://kb.mista.ru/article.php?id=134.
А что касается именно исключений из РЛС, да, в каждый запрос добавляется ни чуть не изящное исключение.

Мое имхо - может тормозить и скорее всего будет в случае большого количества (больше 10к) у каждой группы пользователей... На реально большой базе. Может быть для этих случаев есть смысл не использовать РЛС впринципе или допустим только по организации - зависит от задачи. МБ распределенка решит, но локально с озвученой проблемой идея справляется. Для каждого конкретного случая нужны свои идеи =) Тут я привел реализацию определенной задачи, которая, думаю, поможет многим с подобными проблемами. Я как бы хотел донести суть а не полную реализацию. Хотя получилось что полная реализация присутствует =)) И вот мне интересно кому эта "суть" помогла и кто нашел другие решения, особенно более "изящные".

з..ы. Жду критики - как сделать лучше - это в радость. Ну и кому помогло - тоже в радость =)) Не за что =)))
denxxxden; +1 Ответить
21. kote 506 27.05.16 11:31 Сейчас в теме
.. не ошибка, но оплошность:

 ТОГДА

                                               ВЫБОР КОГДА ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)

                                                               ТОГДА НастройкиПравДоступаПользователей.ОбъектДоступа

                                               ИНАЧЕ
Показать



Вот это
 ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)
будет работать в 5-8 раз медленнее, чем
 (ТекущаяТаблица.#Параметр(2)) ЕСТЬ NULL 
. Для RLS особенно актуально.

Никогда так не делайте!
АлександрЯрославичъ; +1 Ответить
22. EvilDoc 168 01.06.16 13:20 Сейчас в теме
(21) kote, разработчикам РЛС для УПП уже поздновато сообщать о их оплошности)
3. EvilDoc 168 19.06.13 23:10 Сейчас в теме
Собственно, уже ответили =) Вот интересно ранее кто-то сталкивался с подобной задачей и как ее реализовывал?
4. petrov_al 10 20.06.13 12:24 Сейчас в теме
Интересна сама по себе идея использования дополнительных регистров для исключений. А как кстати при обновлении для RLS шаблонов, можно применить приоритеты?
6. kapustinag 22.06.13 21:02 Сейчас в теме
Проверяли работу этого механизма на РЕАЛЬНО большой базе, с достаточно большим количеством одновременно работающих пользователей? Не тормозит?
Если у пользователя постепенно накапливается много исключений, к которым он должен получить доступ, то, мне кажется, будет притормаживать.
8. CagoBHuK 31 26.06.13 09:58 Сейчас в теме
РЛС нет смысла использовать на больших базах. Это сводит полезность Record-Livel Security к нулю.
Alxesp; Shmell; xsazar; AltF1; +4 1 Ответить
9. EvilDoc 168 26.06.13 20:31 Сейчас в теме
(8) CagoBHuK, А разве есть более быстрые альтернативы? Для ограничения доступа RLS наиболее шустрый. Из других вариантов разве что распределенка.
10. a-novoselov 1098 01.07.13 10:48 Сейчас в теме
А не проще и менее затратно было бы просто добавить в шаблон связь по "ИЛИ" со вторым реквизитом (то же имя реквизита из параметра) и поменять шаблон для нужных документов? А если системе необходимо "посмотреть" недоступный документ, например, в обработке проведения другого документа, то выполнять обработку в привелегированном режиме?
11. EvilDoc 168 01.07.13 11:33 Сейчас в теме
В контексте озвученой задачи речь идет о интерактивной работе с запрещенным объектом. В частности просмотр. Ибо менеджер по кадпам должен видеть сам факт перемещения. Чтобы избежать ситуации с неизвестно куда пропавшими сотрудниками =)
12. dyak84 26.09.13 16:50 Сейчас в теме
Да автору безусловное спасибо есть что почитать есть над чем поразмыслить.Так держать Спасибо.
13. EvilDoc 168 13.02.14 11:15 Сейчас в теме
Да автор вообще красава)
14. 20tanush 05.08.15 15:13 Сейчас в теме
EvilDoc, есть необходимость доработать шаблон ограничения, когда исключением является дата документа. Вот в этой темке описываю задачу: http://forum.infostart.ru/forum42/topic135726/message1401591/?result=reply#message1401591
Можете помочь советом?
15. EvilDoc 168 21.08.15 16:11 Сейчас в теме
16. NatalyaVP 08.09.15 14:00 Сейчас в теме
По пункту 2. Какие значения в параметрах? Параметр 1 - это сотрудник? Параметр 2 - это подразделение?
Я сделала шаблон, в ограничении права на чтение что писать? шаблон("",""), а реквизиты как написать. Вот, например, документ "Командировки организаций", табличная часть, в ней сотрудник, в нём подразделение.
шаблон("командировкиОрганизаций.Работники.Сотрудник","командировкиОрганизаций.Работники.Сотрудник.подразделение"). Так?
Заранее спасибо за ответ.
18. EvilDoc 168 08.09.15 16:18 Сейчас в теме
(16) NatalyaVP, #Шаблон("Работники","Сотрудник")
17. EvilDoc 168 08.09.15 16:16 Сейчас в теме
Параметр1 - имя табличной части, Параметр 2 - реквизит в котором хранится сотрудник в данной ТЧ.
Пример из УПП - #Шаблон("Работники","Сотрудник")
19. Orangeman 09.03.16 18:12 Сейчас в теме
Добрый день . Коллеги подскажите вот если стоит ограничение вида
#ПоЗначениям("Документ.ВнутреннееПеремещениеБСО", "Чтение", "",
"Организации", "Организация",
"ИсточникиФинансовогоОбеспечения","ИФО",
"Подразделения","ПодразделениеОтправитель",
"","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","",""
)
И ситуация похожа хочу так же чтобы были доступны документы в которых ПодразделениеПолучатель соответствует моему(по которому ограничиваю запись). Создал так же регистр сведений в него пишу при записи документа, сам документ регистратор и подразделения . Как мне в данном ограничении # ПоЗначениям приудить условие ИЛИ мол выводи те документы которые в регистре с моим подразделением и те которые тут по ПодразделениюОтправителю, Я не совсем понимаю где в настройках пользователя или может еще где хранится информация по Подразделению ему доступному с чем как бы сравнит Подразделение в документе Конфа типовая БГУ 2.0
20. Orangeman 09.03.16 18:17 Сейчас в теме
Как то коряво написал ,ну суть такая хочу выводить пользователю документы в которых ему доступно Подразделение отправитель плюс к ним документы из регистра сведений по некому отбору вот как можно записать условие
23. ДмитрийС 03.08.17 11:06 Сейчас в теме
Кто-нибудь знает как правильно настраивать РЛС по табличным частям? В топике конечно указано (через связь по ссылке ТЧ и ТекущейТаблицей), но объясню свой вопрос:

Я настраиваю запрет доступа по выбранным подразделениям. Т.е. если у пользователя стоит запрет на определенное подразделение (именно в использовании в конкретном документе, а не вообще), то он не должен ни ввести новый, ни исправить старый документ, если в нем было (будет) хоть в одной строке указано запретное подразделение.

При указанном способе происходит проверка не ТекущейТаблицы, а именно ССЫЛКИ на табличную часть. Если происходит ввод нового документа, то временная ссылка уже существует и РЛС отработает правильно. А вот при изменении существующего документа ограничения РЛС встраиваются в запрос на изменение (Update) к субд (мониторю профайлером). Т.е. изменения ссылки не происходит.

Получается, что пользователю запрещено отредактировать существующий документ с запрещенным подразделением (это хорошо). НО! Разрешается в существующем документе с разрешенными подразделениями поменять подразделение на запрещенное и провести. И в этом случае РЛС будет молчать.
24. EvilDoc 168 08.08.17 10:30 Сейчас в теме
Если вы не хотите ограничивать сам справочник Подразделения, то средствами РЛС вы это не решите.
25. ДмитрийС 08.08.17 13:39 Сейчас в теме
(24) Я отлично это решаю, если реквизит шапки, а не ТЧ.
26. ДмитрийС 08.08.17 14:10 Сейчас в теме
(25) Может я просто как то не так настраиваю рлс по ТЧ(
27. EvilDoc 168 08.08.17 16:30 Сейчас в теме
хм.. возможно шаблон указан только на чтение, а на запись нет? Сложно предположить. И да - должно дать выбрать ваше подразделение - но не должно позволить записать такой документ
29. ДмитрийС 09.08.17 07:54 Сейчас в теме
(27) На чтение у меня свободный доступ. Шаблон ограничения стоит на добавление и изменение документа, причем одинаковый.
Да, подразделение можно менять как угодно, а вот записать с запрещенным нельзя.
(28) Не совсем понял о чем вы? Или это у обсуждаемой теме не относится?
30. EvilDoc 168 10.08.17 15:52 Сейчас в теме
(29) давайте попробую взглянуть на ваш шаблон
28. EvilDoc 168 08.08.17 16:33 Сейчас в теме
По поводу не правильно - у меня тут прям цветом было красиво выделено - что куда вставлял - но потом разработчики сийта изменили оформление и все пропало.. Стало ненаглядно и запутанно.
31. ДмитрийС 11.08.17 07:33 Сейчас в теме
мое ограничение выглядит так:
ГДЕ
НЕ 1 В      (ВЫБРАТЬ ПЕРВЫЕ 1      1      ИЗ      Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ТабличнаяЧастьДокумента ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
ПО      ПраваДоступаПользователейКОбъектам.ОбъектДоступа = ТабличнаяЧастьДокумента.ЦентрЗатрат
И ПраваДоступаПользователейКОбъектам.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОграниченияПравДоступа.ПодразделенияПлатежныеДокументыЗапрет)
И ПраваДоступаПользователейКОбъектам.Пользователь В (&ГруппыТекущегоПользователя)
И ПраваДоступаПользователейКОбъектам.Изменение      
ГДЕ      ТекущаяТаблица.Ссылка = ТабличнаяЧастьДокумента.Ссылка)
32. EvilDoc 168 11.08.17 11:04 Сейчас в теме
Вроде все верно. В консоли запросов отрабатывает верно?
33. ДмитрийС 11.08.17 13:05 Сейчас в теме
Конечно))
Он даже отрабатывает, когда пользователь хочет запрещенное подразделение поменять на разрешенное и провести или просто перепровести документ. Тут 1С пишет про недостаточность прав. А вот когда в документе разрешенное подразделение меняется на запрещенное, то молчит.
35. pavel_pss 262 15.12.17 14:35 Сейчас в теме
Все конечно интересно, но ты пишешь (Вот и все. Осталось только указать параметры для шаблона для документов)
Вопрос а где ин нужно указывать то ??????

Я сам как раз из тех для кого пока это сложно.
36. pavel_pss 262 15.12.17 14:47 Сейчас в теме
И плиз можете подсказать какую нить книжку или сайт, по рлс
37. batia777 20.06.18 10:18 Сейчас в теме
Всем привет. Подскажите пожалуйста, если стоит ограничение RLS на справочники Сотрудники и ПодразделенияОрганизаций в ЗУП 2.1 Укр в документе Кадровое перемещение происходит тупиковая ситуация: Кадровик откуда переводится сотрудник может выбрать своего сотрудника, но не может выбрать Подразделения Куда. Обойти как-то средствами RLS это можно?
38. EvilDoc 168 20.06.18 10:46 Сейчас в теме
(37) У кадровика должны быть права на подразделение - куда переводится сотрудник. Иначе система просто не даст провести документ (а не только выбрать подразделение). Но полагаю у вас у этого кадровика нет права на сотрудника. Возможно переводом должен заниматься некий "старший" кадровик, имеющий доступ ко всем подразделениям.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Тольятти
зарплата от 70 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 150 000 руб.
Полный день

Ведущий программист 1С (с функцией наставничества)
Екатеринбург
зарплата от 100 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Москва
зарплата от 150 000 руб.
Полный день