|
Програмно формирую отчет на скд, не работает расшифровка. |
☑ |
0
Kain_wrath
17.07.15
✎
14:20
|
Код:
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТаблицаЗначений", ТаблицаЗначений);
ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных;
СхемаКомпоновкиДанных = ПолучитьМакет("Макет");
Настройки = КомпоновщикНастроек.Настройки;
ДанныеРасшифровкиСКД.Настройки = Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровкиСКД);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровкиСКД);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
В уже сформированном отчете, при двойном щелчке на ячейку вместо выпадающего списка, появляется сообщение с номером ячейки. В форме отчета, через событие ОбработкаРасшифровки, в отладчике смотрел значение реквизита отчета ДанныеРасшифровки, но оно пустое. Куда копать?
|
|
1
GRAF_84
17.07.15
✎
14:24
|
Передавай ДанныеРасшифровки из формы отчета, а не
ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных
|
|
2
Kain_wrath
17.07.15
✎
14:25
|
(1) это как ?
|
|
3
GRAF_84
17.07.15
✎
14:29
|
В модуле формы
Процедура СформироватьФормыДействие(Кнопка)
Сформировать(ДанныеРасшифровки);
КонецПроцедуры
А в модуле объекта
Процедура Сформировать(ДанныеРасшифровки) Экспорт
...
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
...
КонецПроцедуры
|
|
4
fisher
17.07.15
✎
14:33
|
(0) У расширения формы отчета уже есть свойство "ДанныеРасшифровки", которое и должно использоваться для стандартной расшифровки стандартного отчета. А ты эту схему "сломал". Тебе выдаёт не номер ячейки, а индекс элемента данных расшифровки - так и должно быть, если компоновка выполняется не в отчете.
|
|
5
Kain_wrath
17.07.15
✎
14:36
|
(3) Ну так у меня код из топика формируется в модуле объекта в процедуре ПриКомпоновкеРезультата. В обработчиках формы так и не нашел процедуру СформироватьФормыДействие или как то связанную с кнопкой сформировать.
|
|
6
Kain_wrath
17.07.15
✎
14:36
|
(4) ну если я не передаю данные расшифровки ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных;
то при двойном клике на ячейке вообще никаких действий не выполняется
|
|
7
Kyon8
17.07.15
✎
14:40
|
(5)
ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>)
ПриКомпоновкеРезультата (OnComposeResult)
Синтаксис:
ПриКомпоновкеРезультата(<ДокументРезультат>, <ДанныеРасшифровки>, <СтандартнаяОбработка>)
|
|
8
Kain_wrath
17.07.15
✎
14:47
|
Всем спасибо, после (7) понял (4), в процедуре ПриКомпоновкеРезультата я вместо использования стандартного параметра функции ДанныеРасшифровки, зачем то создавал новую переменную ДанныеРасшифровкиСКД.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший