СКД: Не срабатывает обработчик "ОбработкаРасшифровки" при программном выводе в табличный документ на обычной форме

1. Darklight 32 28.03.18 11:46 Сейчас в теме
Почему-то при программном выводе в табличный документ у него затем не срабатывает обработчик "ОбработкаРасшифровки" (при клике по ячейке) для программно выведенной части. Если выводить стандартным механизмом - расшифровка срабатывает. Данные расшифровки заполняются.

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


Не могу понять, что не так? Раньше делал расшифровку - всё работало - а сейчас не получается :-(
Релиз платформы: 8.3.10.2561
Найденные решения
5. Darklight 32 28.03.18 12:21 Сейчас в теме
(4)Всё, проблема устранена - пропустил ещё одну передачу параметра "ДанныеРасшифровки" в функцию

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.Настройки,ДанныеРасшифровки,,
Тип("ГенераторМакетаКомпоновкиДанных"));

В этом случае строка кода не нужна (но не мешает) "ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;" данные расшифровки как раз будут инициализированы пустым объектом "ДанныеРасшифровкиКомпоновкиДанных" вышеуказанной строкой.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alexey_ 27 28.03.18 11:48 Сейчас в теме
(1)
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

ты затираешь стандартные ДанныеРасшифровки своей переменной
3. Darklight 32 28.03.18 11:59 Сейчас в теме
(2)Без этой строки на входе в процедуру параметр "ДанныеРасшифровки" = неопределено и на выходе = неопределено (и обработчик по-прежнему не выполняется). Хотя согласен, раньше так не писал - и работало, но нашёл эту строку кода в примерах Интернета (напрример тут но у меня программный вывод идёт в обработчике при компоновки объекта отчета), когда сейчас искал причины почему не работает расшифровка. С такой строкой - хоть "ДанныеРасшифровки" заполняются в строке "ПроцессорВывода.Вывести(ПроцессорКомпоновки);"
4. Darklight 32 28.03.18 12:13 Сейчас в теме
(3)Вот так заработало :-)

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();    

   
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, 
	КомпоновщикНастроек.ПолучитьНастройки(),ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанных"),Истина);

    
    // Инициализация процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,ДанныеРасшифровки,Истина);
    
    ТабличныйДокументРезультата = ДокументРезультат;
    
    // Получение результата
    ПроцессорВыводаРезультатаКомпоновкиДанных = Новый 
	ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

    ПроцессорВыводаРезультатаКомпоновкиДанных.УстановитьДокумент(ТабличныйДокументРезультата);
    ПроцессорВыводаРезультатаКомпоновкиДанных.Вывести(ПроцессорКомпоновкиДанных);
Показать


взял отсюдас небольшой правкой: "ТабличныйДокументРезультата = ДокументРезультат;"

Осталось понять в чем раньше была загвоздка!
5. Darklight 32 28.03.18 12:21 Сейчас в теме
(4)Всё, проблема устранена - пропустил ещё одну передачу параметра "ДанныеРасшифровки" в функцию

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.Настройки,ДанныеРасшифровки,,
Тип("ГенераторМакетаКомпоновкиДанных"));

В этом случае строка кода не нужна (но не мешает) "ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;" данные расшифровки как раз будут инициализированы пустым объектом "ДанныеРасшифровкиКомпоновкиДанных" вышеуказанной строкой.
6. Darklight 32 28.03.18 13:18 Сейчас в теме
(5) Ошибся в высказывании. "ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;" всё-таки будет мешать работе стандартного механизма расшифровки. Так что эту строку кода писать вообще не надо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот