Имя: Пароль:
1C
 
Программный вывод СКД. Расшифровка.
,
0 Zombi
 
17.11.16
09:41
Вывожу из обработки по кнопке отчет на СКД, стандартная расшифровка не работает. Как исправить? Код вывода:

    ОтчетИстория = Отчеты.ИсторияКлиента.Создать();
    Форма = ОтчетИстория.ПолучитьФорму();
    
    Форма.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = Клиент;
    
    Форма.Открыть();
    
    СхемаКомпоновкиДанных=ОтчетИстория.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
  
    Настройки=ОтчетИстория.КомпоновщикНастроек.ПолучитьНастройки();;
  
    ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
                                                  
    Результат=Форма.ЭлементыФормы.Результат;
    Результат.Очистить();
    ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
1 Zombi
 
17.11.16
10:09
ап.
2 bodri
 
17.11.16
10:17
А в действиях у поля Результат "ОбработкаРасшифровки" что стоит?
3 Zombi
 
17.11.16
10:21
(2) Пусто. Я просто набросал отчет, создал форму по умолчанию и вывожу программно. Если формирую отчет кнопкой "Сформировать", все работает. Программно нет расшифровки.
4 Zombi
 
17.11.16
10:25
ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных;

Тут наверно косяк? Что подсунуть в данныерасшифровки, чтобы она работала?
5 bodri
 
17.11.16
10:27
(4) а может вообще убрать это, тогда и будет по умолчанию отрабатываться
6 bodri
 
17.11.16
10:29
к (5)

    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
    ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
7 Zombi
 
17.11.16
10:29
(5) Тогда надо убирать из :

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

и

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);

Пробовал убрать, тогда расшифровка вообще не активна.
8 bodri
 
17.11.16
10:39
Тогда не надо ни чего убирать, а просто добавить действие для "ОбработкаРасшифровки" и там тоже программно определять какие расшифровки нужны

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    СтруктураПолей = Новый Структура;
    ПолучитьСтруктуруРасшифровки(СтруктураПолей, Расшифровка);
    
КонецПроцедуры

&НаСервере
Процедура ПолучитьСтруктуруРасшифровки(СтруктураПолей, Расшифровка)
    
пишем нужную структуру
    
КонецПроцедуры
9 Zombi
 
17.11.16
10:46
(8) Есть пример, как структуру описать?
10 DailyLookingOnA Sunse
 
17.11.16
12:38
Программно - это скушно.

А вот стандартную подключить тоже что-то не получается.

Там где получается, советуют использовать ПриКомпоновкеРезультата в модуле объекта отчета.

А без этого как сделать, чтобы стандартная работала?
11 Zombi
 
17.11.16
12:47
(10) Так думаю, вместо

ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных;

надо что то подсунуть.
Программист всегда исправляет последнюю ошибку.