Имя: Пароль:
1C
1С v8
Как в динамическом списке установить отбор элементов дерева с сохранением подчиненности
0 chigsrOck
 
01.08.19
18:33
Есть справочник с иерархией элементов. В форме выбора с динамическим списком нужно отразить его в виде дерева(по иерархии), но с отбором по некоторому признаку(пусть, например, скрываются помеченные на удаление)
Тогда если у элемента родитель помечен на удаление, то нужно чтобы в дереве родитель не выводился, а родительским элементом стал его "дед" т.е. Родитель.Родитель (если он сам не помечен на удаление), таким образом за счет устранения разрывов иерархии в результате отборов, будет сформирована как бы новая иерархия справочника. Можно такую штуку сделать в запросе динамического списка или тут только вручную рисовать и выводить дерево? Спасибо.
1 palsergeich
 
01.08.19
18:43
(0) нет в тексте ДС эту задачу не решить, ибо на иерархию в нем ты повлиять не можешь
2 palsergeich
 
01.08.19
18:44
А что мешает сам справочник привести к требуемому виду?
3 chigsrOck
 
01.08.19
20:10
(2) Структура справочника -  это отдельный разговор, его нужно перестраивать, делать иерархию групп и элементов, чтобы отбор по "детальному" реквизиту не распространялся на групповые элементы и т.д., но это отдельная и долгая тема. Сейчас надо просто упростить подбор элементов в форме выбора, так, чтобы с установленным отбором можно было видеть структуру справочника, поэтому надо, чтобы помимо отбора по конкретному реквизиту "детального" элемента, в дерево выводились все его родители с аналогичным значением реквизита или с пустой ссылкой.
4 vde69
 
01.08.19
20:26
твоя задача из разряда RLS когда нужно скрыть группы где нет доступных элементов...

у меня есть испытанное решение:

в запросе делаешь условие

ГДЕ УсловиеЧтоЭлементДоступный или Ссылка в (&МассивРазрешенныхГрупп)

при открытии формы списка, или подбора заполняешь этот параметр, а так-же по событиям обновления элементов
5 palsergeich
 
01.08.19
20:27
(4) да но только на иерархию это не особо работает
6 palsergeich
 
01.08.19
20:28
(4) + нет подмены групп
7 vde69
 
01.08.19
20:29
(5) (6) работает везде, просто надо правильно все настроить :)
8 vde69
 
01.08.19
20:33
(7) +
единственный минус - если слишком много элементов в массиве (более 500)
9 chigsrOck
 
01.08.19
20:37
(4) Хм...А как динамический список догадается, что разрешенные элементы запрещенной группы-родителя нужно переподчинить вышестоящей по иерархии разрешенной группе? В запросе с "Упорядочить ссылка по иерархии" такая конструкция тоже сработает?Ж8()
10 vde69
 
01.08.19
20:41
(9) ни как... такое сделать в динамическом списке не возможно...

я про то, как скрыть не нужную иерархию, разумеется включая все подчиненные элементы


например я делю иерархию
1. легалы
1.1 иванов
1.2 петров
2. не легалы
2.1 джамшут

и не хочу, что-бы проверяющий видел группу "не легалы"
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.