Имя: Пароль:
1C
1С v8
Вывод нескольких пакетов запросов на форму
0 grigorev1987
 
12.07.22
07:15
Здравствуйте!
Делаю внешнюю печатную форму, вывел табличную часть Товары из документа Заказ Клиента. Но уперся в выводом нескольких пакетов запросов на форму. Часть кода, это я уже добавил индексы и "выполняю Пакет" и соответственно поправил немного Цикл, но теперь выводится в Отчет только текст)
Дальше у меня "затык", не могу понять как дальше.

Процедура ПечатьОбъекта(ТабДок,Ссылка)


    Макет = ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказКлиента.Договор.Дата КАК ДоговорДата,
        |    ЗаказКлиента.Договор.Номер КАК ДоговорНомер,
        |    ЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.НомерСтроки КАК НомерСтроки,
        |    ЗаказКлиентаТовары.СуммаНДС КАК СуммаНДС,
        |    ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиентаТовары.Номенклатура.Артикул КАК Артикул,
        |    ЗаказКлиентаТовары.Номенклатура.Наименование КАК НоменклатураНаименование,
        |    ЗаказКлиентаТовары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
        |    ЗаказКлиентаТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |ГДЕ
        |    ЗаказКлиентаТовары.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.ВыполнитьПакет();  
    
    ДанныеЗаголовок = РезультатЗапроса[0].Выбрать();
    ДанныеДетали = РезультатЗапроса[1].Выбрать();
    
        
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");  
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    

    
    ТабДок.Очистить();          
    ТабДок.Вывести(ОбластьЗаголовок);  
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    
    ТабДок.НачатьАвтогруппировкуСтрок();  
    
    ВыборкаЗаголовок = ДанныеЗаголовок.Выбрать();
    ВыборкаЗаголовок.Следующий();    
    
    ВыборкаДетали = ДанныеДетали.Выбрать();
    
    Пока ВыборкаДетали.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
    КонецЦикла;      
    
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();  
        
    КонецПроцедуры;
1 chelentano
 
12.07.22
07:21
РезультатЗапроса = Запрос.ВыполнитьПакет();  
    
    //ДанныеЗаголовок = РезультатЗапроса[0].Выбрать();
    //ДанныеДетали = РезультатЗапроса[1].Выбрать();
    
        
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");  
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    

    
    ТабДок.Очистить();          
    ТабДок.Вывести(ОбластьЗаголовок);  
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    
    ТабДок.НачатьАвтогруппировкуСтрок();  
    
    ВыборкаЗаголовок = РезультатЗапроса[0].Выбрать();
    ВыборкаЗаголовок.Следующий();    
    
    ВыборкаДетали = РезультатЗапроса[1].Выбрать();
    
    Пока ВыборкаДетали.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
    КонецЦикла;      
    
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();  
        
    КонецПроцедуры;
2 Гипервизор
 
12.07.22
07:21
(0) Где условие на ссылку в первом запросе?
И здесь уже тип выборка: ДанныеЗаголовок = РезультатЗапроса[0].Выбрать(), зачем снова ВыборкаЗаголовок = ДанныеЗаголовок.Выбрать()?
3 grigorev1987
 
12.07.22
11:29
(1)
не так тоже не работает, не выводится заголовок
4 chelentano
 
12.07.22
13:47
(3) Дык ты сначала выводишь заголовок, а потом данные выбираешь
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой