Вывод отчета

1. user1619761 23.07.21 12:43 Сейчас в теме
Всем привет. Подскажите, в чем может заключаться проблема вывода отчета без заполненных параметров ( в режиме отладки даже в функцию не заходит)

&НаКлиенте
Процедура ЗакрытьОтчет(Команда)
	// Вставить содержимое обработчика.
	Закрыть();
КонецПроцедуры

&НаКлиенте
Процедура Сформировать(Команда)
	// Вставить содержимое обработчика.
	
	ТабДок = СформироватьОтчетНаСервере();
	ТабДок.Показать("Результат продажи")
	
КонецПроцедуры

&НаСервере

Функция СформироватьОтчетНаСервере()
	
	ТабДок = Новый ТабличныйДокумент;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

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

Функция СформироватьОтчетНаСервере()
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

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

        ОбластьСтрокаТаб.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьСтрокаТаб);
    КонецЦикла; 

    Возврат ТабДок;
       
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ubnkfl 23.07.21 13:19 Сейчас в теме
СформироватьОтчетНаСервере();
ТабДок = СформироватьОтчетНаСервере();

А в чем смысл этих двух строк?
4. user1619761 23.07.21 13:43 Сейчас в теме
(2) забыл убрать СформироватьОтчетНаСервере(); ,через процедуру изначально сделать пытался, вот вызов процедуры и забыл затереть, щас исправлю, спасибо
3. N0t_F0und 10 23.07.21 13:22 Сейчас в теме
5. user1619761 23.07.21 13:50 Сейчас в теме
6. user1619761 26.07.21 15:25 Сейчас в теме
Решил вот так:

Функция СформироватьОтчетНаСервере()
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

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

        ОбластьСтрокаТаб.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьСтрокаТаб);
    КонецЦикла; 

    Возврат ТабДок;
       
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот