Имя: Пароль:
1C
 
помогите отобразить дерево на форме
0 Игорь_МММ
 
27.01.17
10:14
Запрос:

Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Полуфабрикаты.Ссылка КАК Полуфабрикат,
    |    Полуфабрикаты.ГруппаРЦ КАК ГруппаРЦ
    |ИЗ
    |    Справочник.Полуфабрикаты КАК Полуфабрикаты
    |
    |УПОРЯДОЧИТЬ ПО
    |    ГруппаРЦ
    |ИТОГИ
    |    МАКСИМУМ(Полуфабрикат)
    |ПО
    |    ГруппаРЦ";
    ЭлементыФормы.ТабличноеПоле1.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

результат и то, что хочу получить по ссылке:https://cloud.mail.ru/public/MFhb/EohRCmyBC  . что нужно сделать чтобы нормально отобразить дерево на форме?
1 Волшебник
 
модератор
27.01.17
10:20
поменяй колонки местами

ВЫБРАТЬ
Полуфабрикаты.ГруппаРЦ КАК ГруппаРЦ,
Полуфабрикаты.Ссылка КАК Полуфабрикат
2 Игорь_МММ
 
27.01.17
10:25
Да, сделал так:

"ВЫБРАТЬ
    |    Полуфабрикаты.ГруппаРЦ КАК ГруппаРЦ,
    |    Полуфабрикаты.Ссылка КАК Поле1
    |ПОМЕСТИТЬ итог
    |ИЗ
    |    Справочник.Полуфабрикаты КАК Полуфабрикаты
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ГруппаРЦ.Ссылка,
    |    ЗНАЧЕНИЕ(Справочник.Полуфабрикаты.ПустаяСсылка)
    |ИЗ
    |    Справочник.ГруппаРЦ КАК ГруппаРЦ
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    итог.ГруппаРЦ КАК ГруппаРЦ,
    |    итог.Поле1 КАК Полуфабрикат
    |ИЗ
    |    итог КАК итог
    |ИТОГИ
    |    МИНИМУМ(Полуфабрикат)
    |ПО
    |    ГруппаРЦ";

опять же результат не совсем тот:https://cloud.mail.ru/public/9hDf/s8Aq6P2RK
3 osa1C
 
27.01.17
10:25
4 Волшебник
 
модератор
27.01.17
10:26
(2) Согласись, уже лучше
5 Игорь_МММ
 
27.01.17
10:29
(4) да, но все равно не то (3) то есть только поэлементно можно "красиво" работать с деревом?
6 FIXXXL
 
27.01.17
11:00
(5) если это не иерархический справочник с иерархией групп, без бубнокода не получится одним запросом получить дерево
7 Игорь_МММ
 
27.01.17
11:04
(6) спасибо, понял
8 Игорь_МММ
 
27.01.17
11:53
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Полуфабрикаты.ГруппаРЦ КАК ГруппаРЦ,
    |    Полуфабрикаты.Ссылка КАК Поле1
    |ПОМЕСТИТЬ итог
    |ИЗ
    |    Справочник.Полуфабрикаты КАК Полуфабрикаты
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ГруппаРЦ.Ссылка,
    |    ЗНАЧЕНИЕ(Справочник.Полуфабрикаты.ПустаяСсылка)
    |ИЗ
    |    Справочник.ГруппаРЦ КАК ГруппаРЦ
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    итог.ГруппаРЦ КАК ГруппаРЦ,
    |    итог.Поле1 КАК Полуфабрикат
    |ИЗ
    |    итог КАК итог
    |ИТОГИ ПО
    |    ГруппаРЦ";
    
    ВыборкаГруппаРЦ = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ГруппаРЦ");
    Пока ВыборкаГруппаРЦ.Следующий() Цикл
        СтрокаГруппа = Дерево.Строки.Добавить();
        СтрокаГруппа.ГруппаРЦ = ВыборкаГруппаРЦ.ГруппаРЦ;
        ДетальнаяВыборка = ВыборкаГруппаРЦ.Выбрать();
        Пока ДетальнаяВыборка.Следующий()Цикл
            СтрокаРасшифровка = СтрокаГруппа.Строки.Добавить();
            СтрокаРасшифровка.Полуфабрикат = ДетальнаяВыборка.Полуфабрикат;            
        КонецЦикла;
    КонецЦикла;