Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 сен 2021, 19:06

Нужно в отчете вывести результат двух разных запросов в две соседних колонки

Автор Pava_Pav, 31 окт 2011, 12:14

0 Пользователей и 1 гость просматривают эту тему.

Pava_Pav

Нужно в отчете вывести результат двух разных запросов в две соседних колонки.

типа так
запрос1                запрос2
результат1            результат1
результат2            результат2
результат3            результат3


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

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

Получается так:

запрос1           
результат1       
результат2           
результат3 
           запрос2   
           результат1
           результат2
           результат3

Соединить не получается, возникают повторы. Нужно именно два запроса вывести в область. Подскажите как это сделать?


has

Сделай вертикальные секции, в одной выводи реализации, в другой приходы

Pava_Pav


has

Цитата: Pava_Pav от 31 окт 2011, 13:52
А как в вертикальные секции выводить горизонтально?
Там просто когда получаешь область, то получаешь пересечение вертикальной и горизонтальной. Например

ОбластьРеализации=Макет.ПолучитьОбласть("Детали|Реализации");
ОбластьПриходы=Макет.ПолучитьОбласть("Детали|Приходы");

И выводишь их. Только скорей всего надо будет присоединять их.

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Pava_Pav

Цитата: Dethmontt от 31 окт 2011, 14:19
А не проще в одном запросе сделать?
Повторы получаются в одном из документов

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск