Имя: Пароль:
1C
 
Програмно формирую отчет на скд, не работает расшифровка.
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), в процедуре ПриКомпоновкеРезультата я вместо использования стандартного параметра функции ДанныеРасшифровки, зачем то создавал новую переменную ДанныеРасшифровкиСКД.