Принудительно открыть отчет на СКД с определенным уровнем группировки
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура ДействияФормыДействие(Кнопка)
ЭлементыФормы.Результат.Очистить();
СкомпоноватьРезультат(ЭлементыФормы.Результат);
ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(1);
КонецПроцедуры
у меня заработало так, отличие в Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); //Уровень 2
КонецПроцедуры
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); //Уровень 2
КонецПроцедуры
Кому интересно, было сделано так:
Процедура НапечататьОтчет(УровеньГруппировки=3)
СхемаКомпоновкиДанных = ПолучитьМакет("СхемаКомпоновкиДанныхИтоги");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Из открытой формы возьмем установленные настройки
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
ОтчетРезультат = Новый ТабличныйДокумент;
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ОтчетРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ОтчетРезультат.ОтображатьСетку = ложь;
ОтчетРезультат.ОтображатьЗаголовки = Истина;
ОтчетРезультат.ТолькоПросмотр = Истина;
ОтчетРезультат.ПоказатьУровеньГруппировокСтрок(УровеньГруппировки.Значение);
ОтчетРезультат.Показать();
КонецПроцедуры
Процедура ДействияФормыПечать(Кнопка)
Список = Новый СписокЗначений;
Список.Добавить(1, "1");
Список.Добавить(2, "2");
Список.Добавить(3, "3");
Список.Добавить(4, "4");
Список.Добавить(5, "5");
ВыбЭлемент = Список.НайтиПоЗначению(3);
//ВыбЭлемент = Список.ВыбратьЭлемент("Выберите уровень группировки:", ВыбЭлемент);
Если ВыбЭлемент <> Неопределено Тогда
НапечататьОтчет(ВыбЭлемент);
КонецЕсли;
КонецПроцедуры
Показать
Могли бы вы выслать ваш отчёт мне на почту, чтобы я посмотрел как вы сделали.
Что то у меня не получается...
Процедура ДействияФормыПечать(Кнопка) она же идёт &НаКлиенте
а Процедура НапечататьОтчет(УровеньГруппировки=3) &НаСервере
Но в таком случае форма ругается на:
Процедура или функция с указанным именем не определена (ПолучитьМакет)
если писать:
ОбъектОбработка=РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных =ОбъектОбработка.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
То потом выдается ошибка:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
по причине:
Несоответствие типов (параметр номер '3')
Подскажите, что я делаю не так, пожалуйста.
Что то у меня не получается...
Процедура ДействияФормыПечать(Кнопка) она же идёт &НаКлиенте
а Процедура НапечататьОтчет(УровеньГруппировки=3) &НаСервере
Но в таком случае форма ругается на:
Процедура или функция с указанным именем не определена (ПолучитьМакет)
если писать:
ОбъектОбработка=РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных =ОбъектОбработка.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
То потом выдается ошибка:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
по причине:
Несоответствие типов (параметр номер '3')
Подскажите, что я делаю не так, пожалуйста.
В модуле отчета:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
КонецПроцедуры
Показать
(11)
Всё так, только :
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
Всё так, только :
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
(11)
Я так уже несколько раз попробовал ((. А дает такую ошибку ! Кажется дело в периоде
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
КонецПроцедуры
ПоказатьСтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
КонецПроцедуры
Я так уже несколько раз попробовал ((. А дает такую ошибку ! Кажется дело в периоде
Прикрепленные файлы:
(12)А если отчет состоит из нескольких подотчетов внутри, тогда есть какая-нибудь возможность указать уровень группировки при открытии на каждый из подотчетов? Подотчет у меня это несколько независимых группировок. Как например в отчете "Валовая прибыль" в УТ 11
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот