0
web_profiler
02.04.14
✎
16:28
|
Все, вроде, сделал правильно. Скорее всего перепутал порядок инициализаций и выводов. Подскажите, пожалуйста, что не так сделал.
Отчет = Отчеты.ОстаткиПоСкладам.Создать();
Отчет.КонецПериода = КонецПериода;
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
СхемаКомпоновкиДанных = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ФормаОтчета = Отчет.ПолучитьФорму("ФормаОтчета");
СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение = КонецПериода;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Результат = ФормаОтчета.ЭлементыФормы.Результат;
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
//ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ПроцессорВывода.НачатьВывод();
Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));
Результат.ФиксацияСверху = 0;
БезобиднаяШутка = НачалоДня(ТекущаяДата()) = Дата(Год(ТекущаяДата()),4,1);
//Попытка
//Основной цикл вывода отчета
Пока Истина Цикл
ОбработкаПрерыванияПользователя();
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
Если ЭлементРезультата = Неопределено Тогда
//Следующий элемент не получен - заканчиваем цикл вывода
Прервать;
КонецЕсли;
//Элемент получен - выведем его при помощи процессора вывода
Если Результат.ФиксацияСверху = 0 И ЭлементРезультата.ЗначенияПараметров.Количество() <> 0 Тогда
// пошли данные - пора зафиксировать шапку
Результат.ФиксацияСверху = Результат.ВысотаТаблицы;
КонецЕсли;
Если БезобиднаяШутка Тогда
ЭлементРезультата.ПроцентВывода = 100 - ЭлементРезультата.ПроцентВывода;
КонецЕсли;
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
ФормаОтчета.Открыть();
|
|