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

Непонятно себя ведет фильтрация в иерархическом справочнике

Автор Lun, 27 окт 2018, 15:11

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

Lun

Добрый день!
Имеется иерархический справочник СписокДокументов.
В его составе есть реквизит Раздел: ссылка на справочник Разделы.
При этом реквизит Раздел есть не только у элементов справочника, но и групп. Если элемент справочника входит в какую-либо группу, то обязательно и этот элемент и его группа-родитель в поле Раздел содержит одинаковое значение.
Справочник отображается в форме списка. Мне необходимо сделать, чтобы пользователь выбирал Раздел (например, Раздел1) и отображались бы только те элементы и группы, у которых реквизит Раздел=Раздел1.
Для этого написан произвольный раздел, который выбирает все записи справочника с условием: ... где СписокДокументов.Раздел=&Раздел.

НО в результате такой фильтрации на экране получаю следующее:
- все элементы справочника фильтруются правильно, появляются только с нужным разделом=Раздел1,
- все группы справочника НЕ фильтруются, т.е. выводятся в иерархическом просмотре с любым значением Раздел. При этом если для группы Раздел=Раздел1 - эта группа раскрывается до элементов, а для других значений Раздел - эти группы показываются пустыми (нераскрываются до элементов).

Вопрос - как сделать, чтобы и группы справочника выводились бы на экран только с учетом фильтра, а не все подряд ?

AIFrame

Смени тип с иерархии на список.
Еще можешь установить для формы иерархического списка запрет смены родителя.

Lun

Цитата: AIFrame от 27 окт 2018, 15:55
Смени тип с иерархии на список.
Еще можешь установить для формы иерархического списка запрет смены родителя.

AIFrame, в режиме просмотра "Список" все отображается нормально, т.е. "чужие" группы не попадают в окно, но я хочу, чтобы и в режимах Дерево и ИерархСписок они также не попадали.
Насчет этого "можешь установить для формы иерархического списка запрет смены родителя" - не совсем понял, где это делается ?

АлександрВладимирович

Убрать пустые группы можно Условным оформлением
в этой теме https://forum-baza.ru/index.php?topic=71680.0
очень похожий вопрос обсуждается.

Lun

Цитата: АлександрВладимирович от 27 окт 2018, 17:51
Убрать пустые группы можно Условным оформлением
в этой теме https://forum-baza.ru/index.php?topic=71680.0
очень похожий вопрос обсуждается.

Ok, попробую.
Но непонятно, почему они вообще появляются, если запрос не дает элементов по таким группам. Такое впечатление, что группы прилепляются к результату запроса совершенно независимо...

AIFrame

Просмотр иерархии справочника (с отбором) не имеет общего с запросом по элементам. Грубо говоря, когда ты выводишь древо элементов, структура формируется по всему справочнику.
Другое дело, если ты сформируешь результат в виде древа самим запросом (ОбходРезультатаЗапроса.ПоГруппировкамСИерархией) и выгрузишь его в древозначений на форме. По идее, тебе даже считать элементы в каталогах не придется, запрос выдаст итоги только по отобранным.

Lun

Цитата: AIFrame от 27 окт 2018, 20:55
Просмотр иерархии справочника (с отбором) не имеет общего с запросом по элементам. Грубо говоря, когда ты выводишь древо элементов, структура формируется по всему справочнику.
Другое дело, если ты сформируешь результат в виде древа самим запросом (ОбходРезультатаЗапроса.ПоГруппировкамСИерархией) и выгрузишь его в древозначений на форме. По идее, тебе даже считать элементы в каталогах не придется, запрос выдаст итоги только по отобранным.

AIFrame, а если я действительно так и сделаю - выгружу в деревозначений, то (1) перетаскивание из группы в группу будет поддерживаться средствами плафтформы ?
И (2) - после перетаскивания на форме этого дерева новая структура этого дерева с учетом сделанных перетаскиваний сама корректно запишется в справочник ?
Насколько я понимаю, после такой выгрузки действия (1) и (2) мне нужно будет программировать самостоятельно... Или я не прав ?

AIFrame


Теги:

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

Рейтинг@Mail.ru

Поиск