Коллеги, нужен совет, как решить задачу такого плана:

Есть управляемая форма "выбора", при создании которой кодом генерируется достаточно большая таблица значений (вплоть до тысяч строк), в которую помещаются, по большей части, только строковые данные, и формируется она не сказать что на основании данных самой базы. Скорее обособленно. В таблице имеются такие колонки как "Имя" и "Родитель" - в "Родитель" записывается в виде простой строки "Имя" другой строки таблицы (вообщем, у данных есть иерархия). Изменять данные пользователь в итоге не сможет, ему будет доступно только что то выбрать и закрыть форму.

Сделал я это все таким образом для того, чтобы потом поместить таблицу в запрос, и вывсети на саму форму динамический список, в котором "из коробки" будет работать поиск, и отображаться он будет как иерархия элементов. Почитав, погуглив и подумав, я понял, что сделать подобное я либо не понимаю как, либо вообще не возможно, так как запросы и динамические списки понимают иерархию только имеющихся в базе иерархических справочников. Иерархию произвольных данных они не понимают.

Тогда получается, что эту таблицу значний нужно переделать в дерево значений, и показывать на форме напрямую. И поиск по нему придется написать кодом. Однако вот еще один нюанс - когда пользователь пользуется этим поиском и начинает вводить туда некоторую строку, я хочу, чтобы на экране отобразились не только найденные строки, у которых Имя подобно запросу поиска, но и вся иерархия их родителей. Тоесть путь по вложенности где лежат найденные результаты.

В голову приходит идея реализации через два дерева. Основное дерево с данными (или та же таблица) будет скрыто от глаз пользователя, а дерево, выводимое на форму, будет заполняться только результатами поиска, программно каждый раз при использовании. Если поиск отменяется, то оно будет заполняться всеми данными из скрытого дерева.

Это хорошее решение? Или есть что то попроще/пооптимальнее?
---
Вообще либо как вы придумали, либо по первичным данным строить дерево уже с учетом фильтра. Возможно что через условное форматирование сработает, но я не пробовал это на дереве значений.

Рекомендую прежде чем начать, построить дерево в несколько тысяч строк на УФ. У меня есть некоторые нюансы со скоростью работы на больших деревьях.
---
Вообще, поиск в дереве сделали в 8.3.16 https://wonderland.v8.1c.ru/blog/izmenenie-poiska-v-tablitsakh/

Но дерево значений с тысячами строк - работать будет плохо (медленно) однозначно.
---
А если открывать форму выбора с отбором (по нужному полю,родителю и тд)?
---
Заранее неизвестно какой будет отбор. Или вы предлагаете сначала пользователю ввести строку писка, а уже потом форму открывать? Предполагается то, что поиск будет осуществляться прямо в момент набора пользователем начала ключевого слова...
---
Тогда нарисуйте форму с 2 таблицами (Динам.списками).
В 1 таблице родители, во 2 Элементы.
При выборе родителя, производится отбор во 2 таблице и отображаются только элементы этого родителя, так же есть типовой поиск у дин.таблиц
---
Такой механизм реализован в конфигурации ЗУП 3, справочник Сотрудники.
Вот пример:
---
Но у меня иерархия может быть больше чем один уровень. Если у меня будет папка, в ней еще папка, а в ней элементы, то в левой таблице родителей я уже в виде динамического списка такое не смогу представить. А так, если был бы один уровень, идея имеет место быть, да.

В любой конфигурации, именно непосредственно, это реализовать проще. И в ЗУП я думаю это все иерархические справочники. А у меня все происходит, по сути, во внешней обработке, и данные получаются из воздуха, а не из базы.
---
у меня иерархия может быть больше чем один уровень.
ну и что ?)

Не важно сколько уровней, если уровень 1 - отображаются все элементы в иерархии 1 уровня и тд.
---
Вообще либо как вы придумали, либо по первичным данным строить дерево уже с учетом фильтра. Возможно что через условное форматирование сработает, но я не пробовал это на дереве значений.

Рекомендую прежде чем начать, построить дерево в несколько тысяч строк на УФ. У меня есть некоторые нюансы со скоростью работы на больших деревьях.
---
Спасибо за указание о том что деревья работают медленно. Проверить это прямо сейчас не смогу - пока что написал только тестовую табличку на сотню строк, все данные еще не оформил. Но другого варианта кроме как прочувствовать этот экспериенс самому у меня все равно нет. Хотя, если пользователь введет что то в строку поиска, дерево по результатам по идее сформируется небольшое, и не будет тупить. А внутри данные наверное буду в виде таблицы значений хранить.
---
Вообще, поиск в дереве сделали в 8.3.16 https://wonderland.v8.1c.ru/blog/izmenenie-poiska-v-tablitsakh/

Но дерево значений с тысячами строк - работать будет плохо (медленно) однозначно.
---
О, вот это интересно, как вариант, просто проверить. Завтра обновлюсь до 8.3.16 (сейчас на 15ой)
---
Автор планирует еще и всех родителей найденных элементов отображать. Интересно, будет ли эта реализация так уметь?
---
Не пробовал, если честно, тоже под рукой нет 8.3.16.