Имя: Пароль:
1C
1С v8
программное формирование отчета на скд не работает отбор
,
0 braketal
 
16.10.13
14:23
Ребят вот такой код отчет формируется все ок, не работают параметры и отборы вообщем все что касается интерактивной настройки пользоваетеля кто знает в чем замес? я так понимаю дело в настройке я использую "КомпоновщикНастроек.Настройки" вроде там должны сохраняться настройки которые делает пользователь


        СтандартнаяОбработка = Ложь;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки);
    
    ПроцессорКомпоновки = новый ПроцессорКомпоновкиДанных();
    ПроцессорКомпоновки.Инициализировать(Макет);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.НачатьВывод();
    
    ЭлементКомпоновки = ПроцессорКомпоновки.Следующий();
    
    ВыведенаШапка = Ложь;
    
    Пока ЭлементКомпоновки <> НЕОПРЕДЕЛЕНО Цикл
        
        Если Не ВыведенаШапка и ЭлементКомпоновки.ЗначенияПараметров.Количество() > 0 Тогда
            ВыведенаШапка = Истина;
            ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;  
        КонецЕсли;
        
        ПроцессорВывода.ВывестиЭлемент(ЭлементКомпоновки);
        ЭлементКомпоновки = ПроцессорКомпоновки.Следующий();
    
    КонецЦикла;
    
    ПроцессорВывода.ЗакончитьВывод();
    //ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    
    ДокументРезультат.Фиксацияслева = 1;
    ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
1 Aprobator
 
16.10.13
14:32
(0) ужас какой. Открой для себя метод отчета СкомпоноватьРезультат. Жизнь станет гораздо проще.
2 braketal
 
16.10.13
14:41
причем здесь СкомпоноватьРезультат мне нужно чтобы передавались настройки которые я буду делать в режиме предприятия, понимаешь? )
3 Aprobator
 
16.10.13
14:51
у меня все работает. Я правда такой схемой уже лет 100 не пользуюсь. Произвольные отчеты юзаю. Ты компоновщик настрое случаем нигде не переопределяешь? Мало ли реквизитом формы забацал.
4 braketal
 
16.10.13
15:21
да нет нигде ...
5 Aprobator
 
17.10.13
08:43
чудес не бывает - отладчик в руки и смотри значения параметров и отборов в компоновщик.настройки.
6 braketal
 
17.10.13
11:19
:( вот смотрю и не понимаю параметры и отборы пустые ... конфигурация совмещена с конфигурацией стандартные подсистемы от 1с я так думаю где то настроить что то надо
7 Aprobator
 
17.10.13
13:27
значит КомпоновщиеНастроек где то чистится.
8 braketal
 
17.10.13
14:30
хммм ... возможно ты прав буду смотреть где это может быть есть идеи?
9 banco
 
17.10.13
14:37
(0) КомпоновщикНастроек.ПолучитьНастройки()
10 Aprobator
 
17.10.13
17:35
(9) и нафига нужна КОПИЯ настроек?
11 banco
 
17.10.13
18:56
(10) ПолучитьНастройки()
К возвращаемой копии применяются ПОЛЬЗОВАТЕЛЬСКИЕ настройки.
12 braketal
 
18.10.13
11:17
(11) ты прав в отладчике настройки которые я задавал то чно нужно, но все равно каким то хером они обнуляются ни че не пойму

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

КонецПроцедуры
13 braketal
 
18.10.13
13:42
заработало спасибо коллеги )... я заигрался и не заметил   косяк... вообщем получитьНастройки() решили проблему ... спасибо
14 Aprobator
 
20.10.13
16:57
ерунда какая то.
15 braketal
 
21.10.13
11:16
(14) да херь согласен должно итак работать... в типовых по крайне мере работает
Независимо от того, куда вы едете — это в гору и против ветра!