Давно народ ждал этого! Спасибо!
Нарвался на непонятный и неприятный момент. Что делаю:
1. Создаю ИТ, содержащей 2 колонки: "Элемент" и "Родитель". На форме есть списокЗначений ("спГрупп"), куда выгружаются все группы:
Перем тпНаФорме;//:ТабличноеПоле
//*******************************************
Процедура СоздатьТП()
итРезультат=СоздатьОбъект("ИндексированнаяТаблица");
БД=СоздатьОбъект("OLEDBData");
Каталог=?(Прав(КаталогИБ(), 1)= "\", Лев(КаталогИБ(), СтрДлина(КаталогИБ())-1), КаталогИБ());
СтрокаСоединения="Provider=VFPOLEDB.1;Deleted=Yes;Data Source="+Каталог+";Mode=ReadWrite;Collating Sequence=Machine;";;
Рез=БД.Соединение(СтрокаСоединения);
Запрос=БД.СоздатьКоманду();
ТекстЗапроса="
|SELECT Спр.ID as [Элемент $Справочник.Контрагенты]
| ,Род.ID as [Родитель $Справочник.Контрагенты]
|FROM $Справочник.Контрагенты as Спр
|LEFT JOIN $Справочник.Контрагенты as Род ON Род.ID=Спр.ParentID
|";
итРезультат.Загрузить(Запрос.ВыполнитьИнструкцию(ТекстЗапроса));
итРезультат.ДобавитьИндекс("Родитель","Родитель");
итРезультат.Выгрузить(спГрупп, "Родитель", "Родитель", 1);
Поставщик=СоздатьОбъект("ПоставщикДанныхИТ");
Поставщик.ИндексированнаяТаблица=итРезультат;
тпНаФорме.ПоставщикДанных=Поставщик;
Колонка=тпНаФорме.Колонки.Добавить("Элемент");
Колонка.Данные = "Элемент";
Колонка=тпНаФорме.Колонки.Добавить("Родитель");
Колонка.Данные = "Родитель";
КонецПроцедуры // СоздатьТП
2. Хочу, чтобы ТП менялось при выьоре группы из списка. Пишу:
Процедура ПриВыбореРодителя()
ТекРодитель=спГрупп.ПолучитьЗначение(спГрупп.ТекущаяСтрока());
тпНаФорме.ПоставщикДанных.ИндексированнаяТаблица.УстановитьФильтр(ТекРодитель, ТекРодитель, "Родитель");
тпНаФорме.ПоставщикДанных.Индекс="Родитель";
тпНаФорме.ОбновитьСтроки();
КонецПроцедуры // ПриВыбореРодителя
Вроде бы всё нормально, НО при последующем выборе первый видимый элемент не перерисовывается. Т.е. была группа "Физ.лица" с первым элементом "Иванов", выбираем из списка групп "Юр.Лица", - всё поменялось кроме первого элемента, который так и остался = "Иванов". Если прокрутить вниз, а потом обратно вверх, то всё становится на свои места.
Если кому-то лень делать тест, прикладываю здесь.