Почему-то при программном выводе в табличный документ у него затем не срабатывает обработчик "ОбработкаРасшифровки" (при клике по ячейке) для программно выведенной части. Если выводить стандартным механизмом - расшифровка срабатывает. Данные расшифровки заполняются.
В модуле объекта отчета
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Истина; //Сделал так для наглядности - в один и тот же табличный документ сначала выводится результат програмно, затем стандартной обработкой - в первой части результаита расшифровка не работает, во второй работает
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.Настройки,,,
Тип("ГенераторМакетаКомпоновкиДанных"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Показать
Не могу понять, что не так? Раньше делал расшифровку - всё работало - а сейчас не получается :-(
Релиз платформы: 8.3.10.2561
В этом случае строка кода не нужна (но не мешает) "ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;" данные расшифровки как раз будут инициализированы пустым объектом "ДанныеРасшифровкиКомпоновкиДанных" вышеуказанной строкой.
(2)Без этой строки на входе в процедуру параметр "ДанныеРасшифровки" = неопределено и на выходе = неопределено (и обработчик по-прежнему не выполняется). Хотя согласен, раньше так не писал - и работало, но нашёл эту строку кода в примерах Интернета (напрример тут но у меня программный вывод идёт в обработчике при компоновки объекта отчета), когда сейчас искал причины почему не работает расшифровка. С такой строкой - хоть "ДанныеРасшифровки" заполняются в строке "ПроцессорВывода.Вывести(ПроцессорКомпоновки);"
В этом случае строка кода не нужна (но не мешает) "ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;" данные расшифровки как раз будут инициализированы пустым объектом "ДанныеРасшифровкиКомпоновкиДанных" вышеуказанной строкой.
(5) Ошибся в высказывании. "ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;" всё-таки будет мешать работе стандартного механизма расшифровки. Так что эту строку кода писать вообще не надо.