Имя: Пароль:
1C
 
СКД. Расшифровка. Программно
0 Dimarik_1
 
04.06.15
18:58
Необходимо вывести дополнительные поля при расшифровке, которых не было при работе отчета. Например, при работе отчета не было полей Контрагнент и Договоро. А при расшифровке они нужны. Как это можно сделать? Как я понимаю, единственный способ сделать - программный. Я тут начал писать, а дальше не совсем понимаю что и как сделать. Можете подсказать алгоритм?
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    Перем ВыполненноеДействие,ПараметрВыполненногоДействия;
    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));
    
     ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыполненноеДействие,ПараметрВыполненногоДействия);
    
КонецПроцедуры
1 Dimarik_1
 
04.06.15
21:03
попробовал так - нет никаких изменений. Как думаете, почему?
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    Перем ВыполненноеДействие,ПараметрВыполненногоДействия;
    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));
    
    //ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыполненноеДействие,ПараметрВыполненногоДействия);
    
    Настройка = ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие);
    //
    //Если Настройка <> Неопределено Тогда
    //    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    //    ЭлементыФормы.Результат.Очистить();
    //    КомпоновкаРезультата(Результат,ДанныеРасшифровки);
    //    
    //КонецЕсли;
    
    //Компоновщикнастроек = новый КомпоновщикНастроекКомпоновкиДанных;
    //Компоновщикнастроек.ЗагрузитьНастройки(Настройка);
    Результат.Очистить();
    КомпоновкаРезультата(Настройка);
    
    
        
    В33ыполненноеДействие = 1;
КонецПроцедуры

Процедура КомпоновкаРезультата(Настройка)
    //СкомпоноватьРезультат(Результат,ДанныеРасшифровки);
//СкомпоноватьРезультат(Результат, ДанныеРасшифровки);


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

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


Конецпроцедуры
2 Dimarik_1
 
04.06.15
22:18
ни у кого нет идей?
3 Dimarik_1
 
05.06.15
00:16
up up up
4 romix
 
05.06.15
01:40
Я делал недавно, сейчас поищу.
5 romix
 
05.06.15
01:41
Закон Брукера: Даже маленькая практика стоит большой теории.