Имя: Пароль:
1C
1С v8
Внешняя печатная форма на СКД
0 newbling
 
26.05.15
12:11
Доброго времени суток. Пытаюсь написать внешнюю печатную форму с использованием СКД.

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


Результат такой:
http://savepic.ru/7103320.png

результат не выводится - как будто не подгружаются настройки.
Как внешний отчёт я его проверил - работает. Но мне нужно как ВПФ. Подскажите, пожалуйста в чём косяк.
1 LordCMEPTb
 
26.05.15
12:36
Инициализия компоновщика - дело хорошее и нужное, но в инициализации компоновщика только определяются доступные поля...
Надо еще в КомопоновщикНастроек загрузить стандартные настройки макета...
2 newbling
 
26.05.15
12:47
А как это сделать?

КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

ругается
3 LordCMEPTb
 
26.05.15
12:49
(2) Стандартные настройки макета
КомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);
4 newbling
 
26.05.15
12:57
(3) Спасибо огромное!

С загрузкой настроек заработало.

    ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Макет);
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
    КомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);
    Настройки = КомпоновщикНастроек.Настройки;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Заказ", СсылкаНаОбъект);
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаАнализа", Дата(1,1,1));
5 LordCMEPTb
 
26.05.15
12:58
(4) Тут еще вопрос другой, а зачем нужно инициализировать компоновщик, если никакой настройки нет?
Ну то есть если при открытии формы бы инициализировался компоновщик настроек, а в самой форме была возможность править настройки СКД, тогда да, есть смысл. А если без открытия формы сформировать СКД, заполнить параметры и вывести, то можно просто в качестве настроек получить настройки по умолчанию макета без инициализации компоновщика...
6 newbling
 
26.05.15
12:59
Хм, действительно
7 newbling
 
26.05.15
13:00
Но без него что-то не работает метод
УстановитьЗначениеПараметра
8 LordCMEPTb
 
26.05.15
13:05
(7) Обычно в таком варианте в схеме на закладке с настройкой отчета на вложенной закладке "Параметры" включаю использование всех параметров