|
Программное формирование отчета СКД | ☑ | ||
---|---|---|---|---|
0
MistaEr
27.10.20
✎
11:50
|
Здравствуйте!
Есть отчет на СКД. Внешние наборы данных СКД формируются при компоновке результата с использованием множества локальных переменных модуля объекта. Не хотелось бы все это повторять заново в своем коде. Есть ли возможность сформировать отчет программно, примерно так: Дорогой ОтчетОбъект, вот тебе два параметра (остальные параметры считай что не заполнены), вот тебе Вариант отчета (или даже имя варианта), вот тебе ТабличныйДокумент, сформируйся, пожалуйста в мой табличный документ) |
|||
1
ДенисЧ
27.10.20
✎
11:55
|
Я не против. Обращайся. Только с уважением )))
Подсказываю. У отчёта есть метод СкопоноватьРезультат(ТабДокумент, данныеРасшифровки) |
|||
2
MistaEr
27.10.20
✎
11:57
|
Спасибо попробуй, отпишусь)
|
|||
3
MistaEr
27.10.20
✎
11:58
|
(2) Попробую
|
|||
4
SleepyHead
гуру
27.10.20
✎
12:15
|
(0)
Ключ = ""; // здесь идентификатор ключа варианта отчета Если ОтчетВСоставеКонфигурации Тогда Модуль = Отчеты.ИмяОтчетаВКонфигураторе.Создать(); Иначе ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий; ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь; Модуль = ВнешниеОтчеты.Создать(ПутьКФайлуВнешнегоОтчета, Ложь, ОписаниеЗащиты); КонецЕсли; Модуль.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек[Ключ].Настройки); // следующие две строки необязательны, но отчеты в составе БСП могут использовать эти значения в событии ПриКомпоновкеРезультата Модуль.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("КлючВарианта", Ключ); Модуль.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ВариантНаименование", СхемаКомпоновкиДанных.ВариантыНастроек[Ключ].Представление); // установка параметров П = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметры); П.Использование = Истина; П.Значение = ЗначениеПараметра; // установить второй параметр аналогично первому // посмотреть, что в событии ПриКомпоновкеРезультата, обычно там примерно такой код НастройкиСКД = Модуль.КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(Модуль.СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); // найти такую строку // ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; // и заменить на такую ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТвояТаблицаЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); // обработать результат |
|||
5
MistaEr
10.11.20
✎
15:21
|
Всем спасибо:
ОтчетОбъект = Отчеты.МойОтчет.Создать(); СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных; КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек; КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек[ИмяВариантаОтчета].Настройки); КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("КлючВарианта", ИмяВариантаОтчета); КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ВариантНаименование", СхемаКомпоновкиДанных.ВариантыНастроек[ИмяВариантаОтчета].Представление); КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек.Настройки, "Период", ПериодОтчета, Истина, Истина); КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек.Настройки, "Подразделение", Выборка.Подразделение, Истина, Истина); ОтчетОбъект.СкомпоноватьРезультат(ТабличныйДокумент); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |