Имя: Пароль:
1C
1С v8
СКД. Не срабатывает отбор при программном выводе отчета
,
0 Ахмадинежад
 
26.07.13
12:40
Есть отчет на СКД. Пока он был "безкодовым" - всё ок отрабатывало. Но стоило добавить форму, по кнопке на форме вставить текст:
<code>
//Получаем схему из макета
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    

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

</code>
Перестал срабатывать отбор.. Я так понимаю, что в самом коде он где-то "затирается" ?
1 Cube
 
26.07.13
12:46
(0) Всё не читал. Предполагаю, что ты где-то затер настройки. Почитай тут: v8: Своё поведение кнопки Сформировать. СКД.
2 olegves
 
26.07.13
12:46
(0) отбор устанавливается на форме (Отчета), а где происходит программный вывод?
3 olegves
 
26.07.13
12:50
кури НастройкиКомпоновкиДанных
4 Ахмадинежад
 
26.07.13
12:54
(1) cпасибо
(2) отбор устанавливается по кнопке "Настройки" (хотя и на форме отчета тоже), вывод происходит по кнопке, расположенной на форме..
(3)эгэж
5 Zerg80
 
26.07.13
12:54
(4) Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию - вот тут и затер
6 Ахмадинежад
 
26.07.13
12:57
(5) думал про это, но если эти настройки не передавать компоновщику - ругнётся на незаполненость обязательного параметра. Получается, нужно передавать, но какие настройки? Где их взять ?
7 Zerg80
 
26.07.13
12:59
Настройки = КомпоновщикНастроек.Настройки;
8 Zerg80
 
26.07.13
13:00
Т.е. это те, которые юзер установил
9 sunson
 
26.07.13
13:06
Посмотрите  Разработка сложных отчетов в 1С:Предприятие 8
Е.Ю. Хрусталевой стр.476
10 sunson
 
26.07.13
13:15
Настройки = ОбъектОтчета.КомпоновщикНастроек.Настройки;
ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОбора.ПравоеЗначение = ...
ПараметрВывода = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
ПараметрВывода.Использование = Истина;
11 Ахмадинежад
 
26.07.13
14:13
(7)Благодарю! Оно.
12 Ахмадинежад
 
26.07.13
14:15
(10) да, да. именно что компоновщик настроек