Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

БСП: RLS: как скрыть "пустые" группы?

БСП: RLS: как скрыть "пустые" группы?
Я
   conscious
 
31.08.21 - 18:07
В самописной конфигурации на базе БСП (3.1.4.280) используется RLS.
Для одного из справочников текст ограничения в модуле менеджера прописан так:
Ограничение.Текст =
    "РазрешитьЧтениеИзменение
    |ГДЕ
    |    ЭтоГруппа
    |    ИЛИ 

    |ЗначениеРазрешено(Ссылка)";


В роли пользователя для этого справочника прописаны шаблоны ДляОбъекта и ПоЗначениям.
Справочник иерархический, используется иерархия групп и элементов.
Пользователи выдали такую задачу: не выводить группу, если внутри этой группы нет разрешенных элементов.
Вопрос: как такое сделать?
   DrShad
 
1 - 31.08.21 - 18:23
свой дин список с произвольным запросом
   conscious
 
2 - 31.08.21 - 19:58
(1)  А какой там будет запрос, чтобы не отображались группы, в которых нет разрешенных элементов. Там до 5 уровней вложенности…
   fisher
 
3 - 31.08.21 - 20:36
(0) > Вопрос: как такое сделать?
Для иерархии групп и элементов - никак.
Только для иерархии элементов можно такое провернуть.
   fisher
 
4 - 31.08.21 - 20:38
Можно еще нарисовать свою форму, где в одном поле будет выводиться дерево непустых групп, а в другом - элементы выбранной группы.
Как-то так, короче. Танцами вокруг. В лоб задача не решается.
   серый КТУЛХУ
 
5 - 31.08.21 - 20:46
а группа в которой только пустые группы - будет считаться пустой (такой чтобы ее прятать)?..
(просто спросил)))
   conscious
 
6 - 31.08.21 - 22:34
(5) Да.
(4) Форму хотят ту же, просто не хотят видеть "пустые" группы.

Что-то я уже запарился :( В динамическом списке с отображением иерархии даже отборы по ссылке нормально не работают. Т.е., не удается установить отбор Ссылка НЕ в группе из списка.
   Guk
 
7 - 31.08.21 - 22:57
   fisher
 
8 - 01.09.21 - 09:17
(7) Спасибо. Не знал, что через условное оформление таки можно скрыть. Век живи - век учись.
   conscious
 
9 - 01.09.21 - 10:22
Что-то у меня и через условное оформление не получается.
Помогите, люди добрые )
Что не так в коде? Условное оформление просто не добавляется, хотя отрабатывает всё без ошибок.

ЭлемОформления = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2].Элементы.Добавить()//Элементы[2] - условное оформление


ЭлементОтбора = ЭлемОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
ЭлементОтбора.ПравоеЗначение = Рез.Выгрузить().ВыгрузитьКолонку("Родитель");
ЭлементОтбора.Использование = Истина;
        
ЭлемОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

   fisher
 
10 - 01.09.21 - 10:25
(9) Попробуй просто "ВСписке". Ну или скачай рабочий пример по ссылке. Расскажешь :)
   conscious
 
11 - 01.09.21 - 12:19
В общем, сделал через Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление (в ПриСозданииНаСервере).
А через Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2] работает только, если это делать с клиента (в ПриОткрытии), и в этом случае будет заморочка с ранее добавленными элементами пользовательских настроек - нужно будет либо очищать всё, либо искать своё и модифицировать...
   conscious
 
12 - 01.09.21 - 12:23
Оффтоп: есть статья https://its.1c.ru/db/pubv8devui#content:238:hdoc
Кто-нибудь может сказать, для чего там в конце делается Список.КомпоновщикНастроек.ЗагрузитьНастройки(Список.КомпоновщикНастроек.Настройки), при том, что изначально работа идет с Список.КомпоновщикНастроек.Настройки? Мне почему-то кажется, это лишнее в статье на ИТС...
   fisher
 
13 - 01.09.21 - 12:33
(12) Вероятно, чтобы перезаполнились пользовательские настройки.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.