Программная передача параметра в отчет. не получается сформировать отчет
Здравствуйте!
СКД, управляемые формы, отчет для УТ 11.4 Платформа 8.3.18
Такой вопрос: есть отчет на СКД, у него формаОтчета. Нужно в этот отчет программно передать 1 параметр и сразу сформировать отчет.
1. открываю форму и передаю параметр так
ПараметрыФормы = Новый Структура("ПартнерСсылка, СформироватьПриОткрытии", Параметры.Партнер, Истина);
ОткрытьФорму("Отчет.ХарактеристикаКлиента.Форма.ФормаОтчета", ПараметрыФормы);
2. в модуле формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Партнер = Параметры.ПартнерСсылка;
СформироватьОтчетНаСервере(Результат, Партнер);
КонецПроцедуры
&НаСервере
Процедура СформироватьОтчетНаСервере(ТаблДок, Партнер)
ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
ОбъектОтчет.СформироватьОтчет(ТаблДок, Партнер);
КонецПроцедуры
3. в модулеОбъекта отчета
Процедура СформироватьОтчет(ТаблицаОтчета, Партнер) Экспорт
//ПриКомпоновкеРезультата(ТаблицаОтчета, Партнер, СтандартнаяОбработка);
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
// установка параметра Партнер
ПараметрПартнер = Настройки.ПараметрыДанных.Элементы.Найти("ПартнерСсылка");
ПараметрПартнер.Значение = Партнер;
ПараметрПартнер.Использование = Истина;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТаблицаОтчета);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Получается, правильный отчет формируется, мелькает на 2 секунды. Потом затирается пустой шапкой.
Что я делаю не так? Спасибо, что дочитали.
СКД, управляемые формы, отчет для УТ 11.4 Платформа 8.3.18
Такой вопрос: есть отчет на СКД, у него формаОтчета. Нужно в этот отчет программно передать 1 параметр и сразу сформировать отчет.
1. открываю форму и передаю параметр так
ПараметрыФормы = Новый Структура("ПартнерСсылка, СформироватьПриОткрытии", Параметры.Партнер, Истина);
ОткрытьФорму("Отчет.ХарактеристикаКлиента.Форма.ФормаОтчета", ПараметрыФормы);
2. в модуле формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Партнер = Параметры.ПартнерСсылка;
СформироватьОтчетНаСервере(Результат, Партнер);
КонецПроцедуры
&НаСервере
Процедура СформироватьОтчетНаСервере(ТаблДок, Партнер)
ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
ОбъектОтчет.СформироватьОтчет(ТаблДок, Партнер);
КонецПроцедуры
3. в модулеОбъекта отчета
Процедура СформироватьОтчет(ТаблицаОтчета, Партнер) Экспорт
//ПриКомпоновкеРезультата(ТаблицаОтчета, Партнер, СтандартнаяОбработка);
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
// установка параметра Партнер
ПараметрПартнер = Настройки.ПараметрыДанных.Элементы.Найти("ПартнерСсылка");
ПараметрПартнер.Значение = Партнер;
ПараметрПартнер.Использование = Истина;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТаблицаОтчета);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Получается, правильный отчет формируется, мелькает на 2 секунды. Потом затирается пустой шапкой.
Что я делаю не так? Спасибо, что дочитали.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Начинаете формировать отчет из обработчика ПриСозданииНаСервере. Отчет сформировался, а дальше отрабатывает стандартная цепочка обработчиков при открытии.
Начинайте формировать отчет после отработки всех обработчиков при открытии.
Хотя, эта задача обычно решается по другому. В КомпановщикНастроек прописывается нужный параметр и запускается стандартное формирование отчета.
Получается, правильный отчет формируется, мелькает на 2 секунды. Потом затирается пустой шапкой.
Что я делаю не так? Спасибо, что дочитали.
Что я делаю не так? Спасибо, что дочитали.
Начинаете формировать отчет из обработчика ПриСозданииНаСервере. Отчет сформировался, а дальше отрабатывает стандартная цепочка обработчиков при открытии.
Начинайте формировать отчет после отработки всех обработчиков при открытии.
Хотя, эта задача обычно решается по другому. В КомпановщикНастроек прописывается нужный параметр и запускается стандартное формирование отчета.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот