Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Как передать набор данных в Универсальный отчёт? (http://forums.kuban.ru/f1040/kak_peredat-_nabor_dannyh_v_universal-nyj_otch%D1%91t-3847901.html)

EarlyBird 11.03.2013 15:38

Как передать набор данных в Универсальный отчёт?
 
УТ 10.3
Как запихать набор данных (таблицу значений) в построитель Универсального отчёта?

bma1 11.03.2013 15:47

Что-то типа:
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт

ТаблицаДанных = СформироватьТаблицуДанных();
ИсточникДанных=Новый ОписаниеИсточникаДанных(ТаблицаДанных);
ИсточникДанных.Колонки.Колонка1.Измерение=Истина;
ИсточникДанных.Колонки.Колонка2.Измерение=Истина;
ИсточникДанных.Колонки.Колонка3.Итог="СУММА(Колонка3)";
ИсточникДанных.Колонки.Колонка4.Итог="МАКСИМУМ(Колонка4)";
УниверсальныйОтчет.ПостроительОтчета.ИсточникДанных=ИсточникДанных;
УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = ИСТИНА;
УниверсальныйОтчет.ПоказыватьЗаголовок=Истина;
УниверсальныйОтчет.ДобавитьПоказатель("Колонка3","Колонка №3", Истина, "ЧЦ=17; ЧДЦ=2");
УниверсальныйОтчет.ДобавитьПоказатель("Колонка4","Колонка №4", Истина, "ЧЦ=17; ЧДЦ=2");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Колонка1","Колонка группировки №1");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Колонка2","Колонка группировки №2");
УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки.Очистить();
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Колонка1");
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Колонка2");
УниверсальныйОтчет.ПостроительОтчета.ИзмеренияКолонки.Очистить();
//УниверсальныйОтчет.ДобавитьОтбор("");
УниверсальныйОтчет.ДобавитьОтбор("Колонка1");
УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);

КонецПроцедуры

EarlyBird 11.03.2013 15:49

спасиб!
сейчас покопаю

EarlyBird 11.03.2013 17:30

что-то фигня какая-то выходит
процедура УстановитьНачальныеНастройки() отрабатывает при открытии отчёта
получается, я ещё только открываю отчёт, не успел задать никаких параметров, а у меня уже пошло формирование набора данных.
у меня набор данных формируется ОЧЕНЬ тяжёлым запросом
не хочется его мурыжить лишний раз

bma1 11.03.2013 19:13

2(3) Смотри, как надо:
1. есть функция СформироватьТаблицуДанных. Она создает таблицу (описывает ее колонки, типизирует их и все такое прочее) и созраняет ее в локальной переменной, видимой из модуля отчета. Указывать тип колонок ОБЯЗАТЕЛЬНО!
Но самими данными она таблицу не заполняет.
2. при открытии срабатывает вышеуказанная процедура УстановитьНачальныеНастройки. Она дает понять Универсальному отчету с чем ему придется иметь дело.
3. Есть процедура ЗаполнитьТаблицуДанных - она заполняет таблицу, которую мы создали в функции СформироватьТаблицуДанных и храним в локальной переменной данными - это может быть сколь угодно "тяжелая" процедурина.
4. Есть процедура СформироватьОтчет, вызываемая по кнопке Сформировать из формы. В ней мы прописываем:
Процедура СформироватьОтчет(ТабличныйДокумент)
ЗаполнитьТаблицуДанных();
УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент);
КонецПроцедуры
Всё очень просто.

EarlyBird 11.03.2013 19:16

ты шаман, брат!
как ты это делаешь?
какие мудрые книжки ты читал?

bma1 11.03.2013 19:52

2(5) Я долго курил УТ10...


Текущее время: 08:03. Часовой пояс GMT +3.