Имя: Пароль:
1C
1С v8
Две схемы компоновки данных
0 Niik
 
11.12.18
00:59
Есть отчет, с двумя схемами компоновки данных. Две формы отчета. На первой форме есть кнопка, которая открывает вторую
форму отчета. При нажатии на кнопку должна открываться форма и формируется отчет по не основной схеме компоновки данных.
Так же из первой формы передаются два параметра во вторую схему компоновки данных.

В модуле события при компоновке результата срабатывает только так:

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

При попытке установить параметры программа их игнорирует

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

Если СтандартнаяОбработка = ложь, то совсем ничего не выводит:

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

как передать параметры во вторую схему?
2 Casey1984
 
11.12.18
01:18
ИТС - всему голова!

https://its.1c.ru/db/metod8dev#content:3480:hdoc

(чета сайт тормозит, не вижу своего поста, продублирую)
3 Niik
 
11.12.18
02:14
(2) спасибо! помогло
4 Niik
 
11.12.18
02:36
а как сделать, чтобы при открытии второй формы, сразу формировался отчет? Пробовала

Процедура ПриОткрытии()    
    
    ЭтотОбъект.ПриКомпоновкеРезультата(ЭлементыФормы.Результат, ,);        

КонецПроцедуры

не работает.

Так же при открытии настроек СКД из второй формы, и при изменении настроек, отчет выводится со старыми настройками.
5 Web00001
 
11.12.18
02:46