Имя: Пароль:
1C
1С v8
Иерархический вывод результата в построитель отчета
0 arhiordinator
 
21.02.14
13:16
Всем привет, подскажите как вывести через построитель, результат в иерархическом виде, на форме имеется "ПолеТабличногоДокумента", собственно текст запроса и настройки построителя ниже.

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
                   |    Номенклатура.Ссылка КАК Номенклатура
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)
                   |    И НЕ Номенклатура.ПометкаУдаления
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    Номенклатура.НоменклатурнаяГруппа,
                   |    Номенклатура.Ссылка
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура.НоменклатурнаяГруппа,
                   |    Номенклатура.Ссылка
                   |ИТОГИ ПО
                   |    Номенклатура.Ссылка,
                   |    Номенклатура.НоменклатурнаяГруппа ИЕРАРХИЯ
                   |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("Родитель",Справочники.Номенклатура.Комплектующие);
    РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ПостроительОтчетаДляВывода = Новый ПостроительОтчета();
    ПостроительОтчетаДляВывода.ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатЗапроса);
    ПостроительОтчетаДляВывода.Выполнить();    
    ТабличныйДокумент = ЭлементыФормы.ДокументРезультат;
    ТабличныйДокумент.Очистить();    
    ПостроительОтчетаДляВывода.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Песок);
    ПостроительОтчетаДляВывода.ОформитьМакет();
    ПостроительОтчетаДляВывода.РазмещениеИзмеренийВКолонках = ТипРазмещенияИзмерений.Вместе;
    ПостроительОтчетаДляВывода.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
    ПостроительОтчетаДляВывода.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.отдельно;
    ПостроительОтчетаДляВывода.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.отдельно;
    ПостроительОтчетаДляВывода.ТекстЗаголовка = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    ПостроительОтчетаДляВывода.Вывести(ТабличныйДокумент);
1 arhiordinator
 
21.02.14
13:27
up
2 х86
 
21.02.14
13:30
зачем построителю скармливаешь ДЗ ???
установи у него текст запроса и добавь поле в ИзмеренияСтроки
3 arhiordinator
 
21.02.14
13:34
(2) так проблема именно в том, что это просто упрощенный вариант, построителю там скармливается Запрос и не понятно как вывести.
4 х86
 
21.02.14
13:45
тут всё есть http://infostart.ru/public/19341/
5 zladenuw
 
21.02.14
13:46
а чего построитель то. через СКД же проще.
6 arhiordinator
 
21.02.14
13:47
(5) нужно сделать именно через построитель.
7 zladenuw
 
21.02.14
13:58
ПостроительОтчетаДляВывода = Новый ПостроительОтчета();
    
    ПостроительОтчетаДляВывода.Текст = "ВЫБРАТЬ
                                       |    Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
                                       |    Номенклатура.Ссылка КАК Номенклатура
                                       |ИЗ
                                       |    Справочник.Номенклатура КАК Номенклатура
                                       |ГДЕ
                                        |НЕ Номенклатура.ПометкаУдаления
                                       |{ГДЕ
                                       |    Номенклатура.Родитель.*}
                                       |
                                       |СГРУППИРОВАТЬ ПО
                                       |    Номенклатура.НоменклатурнаяГруппа,
                                       |    Номенклатура.Ссылка
                                       |
                                       |УПОРЯДОЧИТЬ ПО
                                       |    Номенклатура.НоменклатурнаяГруппа,
                                       |    Номенклатура.Ссылка
                                       |ИТОГИ ПО
                                       |    Номенклатура,
                                       |    НоменклатурнаяГруппа ИЕРАРХИЯ
                                       |АВТОУПОРЯДОЧИВАНИЕ";
                  
    ПолеОтбора = ПостроительОтчетаДляВывода.Отбор.Добавить("Родитель");
    ПолеОтбора.ВидСравнения = ВидСравнения.ВИерархии;
    ПолеОтбора.Значение = ПолеВвода1;
    ПолеОтбора.Использование = Истина;
    
    ПостроительОтчетаДляВывода.ЗаполнитьНастройки();
    ПостроительОтчетаДляВывода.Выполнить();    
    ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента;
    ТабличныйДокумент.Очистить();    
    ПостроительОтчетаДляВывода.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Песок);
    ПостроительОтчетаДляВывода.ОформитьМакет();
    ПостроительОтчетаДляВывода.РазмещениеИзмеренийВКолонках = ТипРазмещенияИзмерений.Вместе;
    ПостроительОтчетаДляВывода.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
    ПостроительОтчетаДляВывода.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.отдельно;
    ПостроительОтчетаДляВывода.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.отдельно;
    ПостроительОтчетаДляВывода.ТекстЗаголовка = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    ПостроительОтчетаДляВывода.Вывести(ТабличныйДокумент);
8 zladenuw
 
21.02.14
13:58
а вообще. читать тут http://www.mista.ru/v8/repbuilder.htm
9 arhiordinator
 
21.02.14
14:27
(7) Читаю гайд , спасибо за запрос, но он у тебя через построитель, нужно с источником запрос.
10 zladenuw
 
21.02.14
14:50
(9) ты написал через построитель. я тебе дал результат через построитель. нафига что бы источник был запрос ?
11 arhiordinator
 
21.02.14
15:04
это просто тренировочный запрос.  Есть большой супер запрос, который выводить в табличный документ. Там есть куча виртуальных таблиц. В общем что бы тот не писать, написал такой.
12 arhiordinator
 
21.02.14
15:26
Вот как то так, для бушующих поколений:
ПостроительОтчета.ИсточникДанных.Колонки.НоменклатурнаяГруппа.Измерение = Истина;
13 arhiordinator
 
21.02.14
15:26
вопрос решен
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн