Имя: Пароль:
1C
1С v8
Расшифровка данных в СКД
0 Zoopst
 
22.08.17
16:54
Всем привет!
Помогите разобраться

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

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

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

СхемаКомпоновки = ПолучитьМакет("СКД2");
ВнешниеНаборыДанных.Вставить("Отчет2",ТЗ2);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, Настройки,ДанныеРасшифровки);
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат1);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

Надо сделать расшифровку данных для каждой таблицы
В обработчикесобытий для ПоляТабличногоРезультата прописываю функцию

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

Процедура РезультатОбработкаРасшифровки1(Элемент, Расшифровка, СтандартнаяОбработка)
    
СхемаКомпоновкиДанных = ПолучитьМакет("СКД2");
    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных) );
  
   МассивДоступныхДействий = Новый Массив;
   МассивДоступныхДействий.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
  
   НастройкиРасшифровки = ОбработкаРасшифровки.Выполнить(Расшифровка,, МассивДоступныхДействий);
КонецПроцедуры


Но в результате  расшифровка отрабатывает только для второго отчета. А при расшифровке первого отчета данные берутся из второго.

Где надо подправить, чтобы все работало нормально
1 vicof
 
22.08.17
17:02
Две процедуры с одинаковым наименованием?
2 Zoopst
 
22.08.17
17:11
разные, просто здесь ошибка
3 Zoopst
 
22.08.17
17:12
Процедура РезультатОбработкаРасшифровки2(Элемент, Расшифровка, СтандартнаяОбработка)
    
СхемаКомпоновкиДанных = ПолучитьМакет("СКД2");
    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных) );
  
   МассивДоступныхДействий = Новый Массив;
   МассивДоступныхДействий.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
  
   НастройкиРасшифровки = ОбработкаРасшифровки.Выполнить(Расшифровка,, МассивДоступныхДействий);
КонецПроцедуры
4 vicof
 
22.08.17
17:12
ДанныеРасшифровки разные должны быть для каждого отчета
5 Zoopst
 
22.08.17
17:14
а как это сделать
6 mehfk
 
22.08.17
17:21
7 Zoopst
 
22.08.17
17:21
все получилось,
спасибо
Программист всегда исправляет последнюю ошибку.