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