Имя: Пароль:
1C
1С v8
Передача данных из одного отчета в другой отчет (унивепрсальный)
,
0 asder117
 
20.02.19
15:36
Доброго времени суток.
Подготавливаю отчет. в поле результат в событии Обработка расшифровки добавляю такой код
[CODE]Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
//   // Вставить содержимое обработчика.

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

    
    Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия,Нов);
    
   // Обрабатываем собственные действия
   Если ВыполненноеДействие = "Открыть отчет по взаиморасчетам" Тогда
    //
    ОтчетНовый = Отчеты.ВедомостьВзаиморасчетыСКонтрагентами.Создать();

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

    ОтчетНовый.КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроек.Настройки);
ФормаОтчетаН = ОтчетНовый.ПолучитьФорму();
//Попытка
//ФормаОтчета.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное;
//Исключение        
//КонецПопытки;
////ФормаОтчета.УниверсальныйОтчет.ВариантОформления = СтандартноеОформление.Интерфейс;

////ОтчетОбъект.УстановитьНачальныеНастройки();
////ОтчетОбъект.мВосстанавливатьНастройкиПриОткрытии = Ложь;

ФормаОтчетаН.Открыть();    
                
ФормаОтчетаН.ОбновитьОтчет();

    //
    КонецЕсли;
    
    Если Настройки <> Неопределено Тогда
       //пользователь выбрал действие, для которого нужно менять настройки
        Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить Тогда
            КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
            СформироватьОтчет();
            
        Иначе
            
           //при других действиях создадим новый отчет, откроем форму, сформируем отчет в ней
            ЭтаФорма.Открыть();
            КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
            СформироватьОтчет();
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры [/CODE]
при этом отчет посабытию открывается формируется но отбор не встает. Что не так? Уже везде облазил, сделал по рекомендациям но никак
1 asder117
 
20.02.19
20:12
получается идей никаких ни у кого?