Имя: Пароль:
1C
 
Не работает расшифровка в объединении схем компоновке в модуле объект отчета
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, Истина);
    
КонецПроцедуры

Все выведется как надо. Сначала первый отчет и под ним второй. Но в схеме второго отчета на вкладке макеты была расшифровка с помощью Макета поля. И вот она перестала работать. Скажите, пожалуйста, можно ли что-то сделать в данной ситуации? Как то можно оживить ту расшифровку?
1 lEvGl
 
14.06.24
20:02
можно, данные расшифровки переопределить надо для 2-го отчета, из второй схемы, кажется так
2 Королевский Тигр
 
16.06.24
20:39
(1) Подскажи как это сделать?