Имеется иерархический справочник.

как открыть его форму выбора (только группы), чтобы пользователю для выбора бала доступна лишь отдельная ветвь дерева ( можно кусок иерархического списка)

Как показано на рисунках:
Ветвь "Социальное питание" и все группы, входящие в него.

Корень, и остальные группы попадать в отбор не должны.

В форму выбора (ПриСозданииНаСервере не лезем), работаем в своей форме документа.

Пробовал так, но результат - Все дерево в форме выбора

```1c
    СтандартнаяОбработка = Ложь;
    НастройкаОтбора = Новый НастройкиКомпоновкиДанных;

    Отбор = НастройкаОтбора.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

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

    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("РежимВыбора", Истина);
    ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Истина);
    ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкаОтбора);

    ОткрытьФорму("Справочник.Склады.ФормаВыбора", ПараметрыФормы, Элемент, этаформа.УникальныйИдентификатор);
```
---
Попробуйте через условное оформление видимости. Делал интерактивно, значит и программно можно
---
Спасибо за совет, в итоге сделал свою форму, на форму бросил Динамический список.
ОтображениеСписка - Дерево

И там уже установил Условное оформление

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    СоцПитание = Справочники.Склады.НайтиПоНаименованию("Социальное питание",Истина);
    Список.Параметры.УстановитьЗначениеПараметра("СкладСоцПитание",СоцПитание);

    ЭлементОформления = список.УсловноеОформление.Элементы.Добавить();

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

    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

    КонецПроцедуры

    &НаКлиенте
    Процедура Выбрать(Команда)
    Закрыть(Элементы.Список.ТекущиеДанные.Ссылка);
    КонецПроцедуры
```
---
Если не ошибаюсь, то при установленном свойстве "Режим просмотра" динамического списка в значение "Иерархический список" для групп справочника игнорируются отборы. Поэтому, если очень хочется увидеть именно ветку, то следует переключить режим просмотра на "Дерево", однако это может повлечь за собой более длительное открытие формы выбора (из-за необходимости строить дерево целиком). Но при этом я не уверен, что можно будет исключить из списка узлы ветки верхнего уровня.
---
если выводить дерево с элементами, то остальные ветви выводятся просто пустыми. Получается единственный вариант создать свою форму и в ней строить дерево?
---
Хм. Выходит и при режиме "Дерево", равно как и при режиме "Иерархический список", отбор для групп игнорируется. Получается, что только свою форму.

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

И там уже установил Условное оформление

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    СоцПитание = Справочники.Склады.НайтиПоНаименованию("Социальное питание",Истина);
    Список.Параметры.УстановитьЗначениеПараметра("СкладСоцПитание",СоцПитание);

    ЭлементОформления = список.УсловноеОформление.Элементы.Добавить();

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

    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

    КонецПроцедуры

    &НаКлиенте
    Процедура Выбрать(Команда)
    Закрыть(Элементы.Список.ТекущиеДанные.Ссылка);
    КонецПроцедуры
```