0
Королевский Тигр
14.06.24
✎
19:46
|
Добрый день дорогие друзья!
Извиняюсь за столь сложное название темы. Сейчас постараюсь подробнее описать проблему.
Передо мной стоит задач в одном отчете показывать 2 других уже готовых отчета, которые есть в базе.
Я подумал над вариантами решения задачи.
1) Засунуть через 2 схемы из готовых отчетов во вложенные схемы. Отмёл этот вариант потому,что не умею работать с вложенными схемами.
2) Сделать одну схему и там набор данных объединение. И в него запихать данные из двух готовых отчетов. Пока данный вариант не рассматриваю потому что долго.
И вот решил пойти по простому пути №3.
Делаю внешний отчет. Туда запихиваю Макет из первого и второго отчета.
В модуле объекта моего отчета, в процедуре ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) вывожу сначала первый макет потом второй. Вот как это выглядит
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ИдентификаторПользовательскойНастройки = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОтчета").ИдентификаторПользовательскойНастройки;
ДатаОтчета = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ИдентификаторПользовательскойНастройки).Значение.Дата;
ТаблицаПоказателей = ПолучитьТаблицуПоказателей(ДатаОтчета);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, Новый Структура("ТаблицаПоказателей", ТаблицаПоказателей), ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
//отчет с пустой областью, нужно что бы визуально было расстояние между первым и вторым отчетом
Макет = ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("ПустаяСтрока");
ДокументРезультат.Вывести(Область);
//Вывод 2 отчета
Схема2 = ПолучитьМакет("Отчет2Схема");
КомпоновщикМакета2 = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки2 = КомпоновщикМакета2.Выполнить(Схема2, Схема2.НастройкиПоУмолчанию, ДанныеРасшифровки);
ПроцессорКомпоновки2 = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки2.Инициализировать(МакетКомпоновки2, , ДанныеРасшифровки, Истина);
ПроцессорВывода2 = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода2.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода2.Вывести(ПроцессорКомпоновки2, Истина);
КонецПроцедуры
Все выведется как надо. Сначала первый отчет и под ним второй. Но в схеме второго отчета на вкладке макеты была расшифровка с помощью Макета поля. И вот она перестала работать. Скажите, пожалуйста, можно ли что-то сделать в данной ситуации? Как то можно оживить ту расшифровку?
|
|