Корректное заполнение данных на форме из Дерева Значений
Салют, друзья. Выполняю учебную задачу. Необходимо на форму вывести список наименования мебели и её составных частей. Составные части берутся из регистра сведений, а сама мебель из одноименного справочника. После составления запроса и создания дерева значений написал такой код
Как мне сделать нормальное отображение с иерархией неповторяющихся данных.
Процедура ЗаполнитьДерево(СтрокиДерева, Выборка)
Пока Выборка.Следующий() Цикл
НовСтрока = СтрокиДерева.Добавить();
НовСтрока.Код = Выборка.Код;
НовСтрока.ПредметМебели = Выборка.ПредметМебели;
Если ЗначениеЗаполнено(Выборка.СоставныеЧасти) Тогда
СтрокиСети = НовСтрока.Строки.Добавить();
СтрокиСети.СоставныеЧасти = Выборка.СоставныеЧасти;
СтрокиСети.Код = Неопределено;
КонецЕсли;
ВыборкаПод = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Если ВыборкаПод.Количество() <> 0 Тогда
ЗаполнитьДерево(НовСтрока.Строки, ВыборкаПод);
Конецесли;
КонецЦикла;
КонецПроцедуры
ПоказатьКак мне сделать нормальное отображение с иерархией неповторяющихся данных.
Прикрепленные файлы:

По теме из базы знаний
- Управляемая форма 1С 8.2(8.3) – работа с деревом значений и таблицей значений. Часть II (Реализация DRAG and DROP)
- Конструктор результата системы компоновки данных для работы с деревом значений в тонком клиенте.
- Преобразование массива структур в дерево значений. Представление массива подчиненных друг другу "объектов" в иерархическом виде без использования рекурсии
- Консоль запросов для управляемых форм 8.3
- Консоль запросов для управляемых форм
Найденные решения
Всем откликнувшимся, спасибо за предложения, но я решил дописать свой код и теперь справочники в первой колонке не повторяются напротив каждого значения. вот код:
Процедура ЗаполнитьДерево(СтрокиДерева, Выборка)
Пока Выборка.Следующий() Цикл
НовСтрока = СтрокиДерева.Добавить();
НовСтрока.ПредметМебели = Выборка.ПредметМебели ;
Если ЗначениеЗаполнено(Выборка.СоставныеЧасти) Тогда
Строка = НовСтрока.Строки.Добавить();
Строка.СоставныеЧасти= Выборка.СоставныеЧасти;
Пока Выборка.Следующий() И Выборка.ПредметМебели = НовСтрока.ПредметМебели Цикл
Если ЗначениеЗаполнено(Выборка.СоставныеЧасти) Тогда
НовСтрокаСС = НовСтрока.Строки.Добавить();
НовСтрокаСС.СоставныеЧасти= Выборка.СоставныеЧасти;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ВыборкаПод = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Если ВыборкаПод.Количество() <> 0 Тогда
ЗаполнитьДерево(НовСтрока.Строки, ВыборкаПод);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Всем откликнувшимся, спасибо за предложения, но я решил дописать свой код и теперь справочники в первой колонке не повторяются напротив каждого значения. вот код:
Процедура ЗаполнитьДерево(СтрокиДерева, Выборка)
Пока Выборка.Следующий() Цикл
НовСтрока = СтрокиДерева.Добавить();
НовСтрока.ПредметМебели = Выборка.ПредметМебели ;
Если ЗначениеЗаполнено(Выборка.СоставныеЧасти) Тогда
Строка = НовСтрока.Строки.Добавить();
Строка.СоставныеЧасти= Выборка.СоставныеЧасти;
Пока Выборка.Следующий() И Выборка.ПредметМебели = НовСтрока.ПредметМебели Цикл
Если ЗначениеЗаполнено(Выборка.СоставныеЧасти) Тогда
НовСтрокаСС = НовСтрока.Строки.Добавить();
НовСтрокаСС.СоставныеЧасти= Выборка.СоставныеЧасти;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ВыборкаПод = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Если ВыборкаПод.Количество() <> 0 Тогда
ЗаполнитьДерево(НовСтрока.Строки, ВыборкаПод);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот