RLS как скрыть пустые папки контрагентов #712350


#0 by Efimoff
УТ 10. Пытаюсь настроить. Сделал ограничение по контрагентам. Контрагентов в списке справочника не видно. Всё хорошо. Попросили ещё убрать сами папки, т.е ,если есть папка "Покупатели Иванова", то чтобы пользователь <> Иванова не видел ни контрагентов в папке "Покупатели Иванова" (сделал штатно), ни саму папку "Покупатели Иванова". Сделал с временными таблицами в обычной консоли, но был жестоко остановлен в 1С - использование их в RLS запрещено. Есть ли способ скрыть пустые папки?
#1 by Efimoff
^^
#2 by Maxus43
программно да, с помощью РЛС - надо думать... не думаю что будет красиво
#3 by Efimoff
а как можно перехватить данные после наложения RLS, но ДО показа пользователю?
#4 by PR
Не стоит
#5 by Wobland
немного ранее того, как они начнут показываться
#6 by Naumov
Если РЛС срабатывает на реквизиты элементов, то кто мешает сделать так же для групп?
#7 by Господин ПЖ
сделать реквизит rls - для групп и элементов?
#8 by DionisSergeevich
Вместо временной таблицы используй подзапрос
#9 by Efimoff
, Привёл простой пример. Но может быть и так, что в одной папке будут лежать контрагенты разных пользователей. Тогда какую группу доступа вешать на папку? слишком запутанно получается
#10 by DionisSergeevich
Да не особо запутанно. Но еще нельзя использовать виртуальные таблицы в РЛС. Чтобы было проще - в ворде фиксирую доработки РЛС - прям разным цветом. Ну и отлаживаю в консоли шаблон - "выбрать * из [объект для которого делаем РЛС] как ТекущаяТаблица..." и погнал)
#11 by DionisSergeevich
Впринципе РЛС не сложнее простого использования запросов - не пойму чего его все так боятся и путаются) Вот почитай тут = примеры доработок РЛС - ни чего сложного вообще
#12 by Новенький_2009
"в одной папке будут лежать контрагенты разных пользователей. Тогда какую группу доступа вешать на папку? " Очевидно, что нужно где-то хранить связь между папкой, и списком групп пользователей, или просто пользователей. Как ты ее организуешь - дело твое. РС, ТЧ, или что-то иное.
#13 by Fragster
для "В иерархии" лучше всего добавить РС (или реквизиты в справочник) с хранением либо "левой" и "правой" границы, либо с "полным путем", тогда В ИЕРАРХИИ заменяется на МЕЖДУ или Подобно "Путь%" соответственно
#14 by Necessitudo
Сделай программно в форме списка при получении данных.
#15 by Михаил Козлов
Можно попробовать в ПередОткрытием в форме списка наложить фильтр на папки в дереве (справа) (делал так для номенклатуры).
#16 by rphosts
делай через РЛС, с ним ничего сложного нет.... если не знаешь - до кучи и РЛС научишься
#17 by Efimoff
Сделал через РЛС. Реквизит ГруппаДоступаККонтрагенту добавил к группе справочника. Если указана конкретная группа - видит только она, если пустая - все. 3 параметр в шаблоне заменил на "ИЛИ (ЭтоГруппа И ГруппуДоступаККонтрагенту = ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПусиаяСсылка))". Всем спасибо за правильное развитие мысли
#18 by vde69
делаешь параметр сеанса "РазрешенныеГруппыКонтрагентов" фиксированый массив, при старте его заполняешь, и так-же при записи любого элемента ее обновляешь. где этоГруппа и Сссылка в (&РазрешенныеГруппыКонтрагентов)
#19 by Armando
"Однако, при изменении значений параметров сеанса или функциональных опций, которые используются в запросах ограничения доступа к данным, происходит очистка накопленного кэша запросов, что приводит к существенному снижению производительности запросов к данным."
#20 by vde69
это не на долго (а по поводу замедления оно не значительное, попробуй заметить его при старте системы), 1с имеет в виду, что если каждый вызов запроса менять параметры - будет заметно, а так вообще пофиг. кроме того в данном случае событий будет паку для юзера...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям