Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отчет СКД, программный вывод, при смене настроек (польз) формирует по по старым настройкам

Отчет СКД, программный вывод, при смене настроек (польз) формирует по по старым настройкам
Я
   SkillUp
 
10.02.20 - 12:34
Здравствуйте, прошу помочь. Программно вывожу отчет СКД, если изменить настройки (допустим сфомировать за другой период). То выводит данные, из настроек, которые заполнили впервый раз, после открытия (т.е. первые настройки сохраняются, и формируется только по ним отчет). Как программно обновлять настройки каждый раз? В какой процедуре? Короче "плаваю" в этом вопросе. Форма отчета пустая..

При программном выводе отчета у меня только одна процедура:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
1) Начало:   СтандартнаяОбработка = Ложь;

2) Программное заполнение полей СКД: ...

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

КонецПроцедуры
 
 
   SkillUp
 
1 - 10.02.20 - 12:39
"Форма отчета пустая..." Хотел объяснить, что там нету кода. Все по умолчанию.
   fisher
 
2 - 10.02.20 - 12:51
Если это УФ и используются пользовательские настройки СКД, то и программно изменять настройки нужно именно через "ПользовательскиеНастройки".
 МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
В этой строчке непонятно откуда у тебя берутся "Настройки". Штатно, если хочешь получить настройки с учетом "ПользовательскиеНастройки", там должны быть КомпоновщикНастроек.ПолучитьНастройки()
   SkillUp
 
3 - 10.02.20 - 13:01
(2) Да, у меня так :     
      
      //Получаем схему из макета

    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    //Из схемы возьмем настройки

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
   SkillUp
 
4 - 10.02.20 - 13:09
(2) Все разобрался, СПАСИБО!
   SkillUp
 
5 - 10.02.20 - 13:59
Может кому-то поможет:

    ПараметрНач=КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНач"));
    ЗаполнитьЗначенияСвойств(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрНач.ИдентификаторПользовательскойНастройки),параметр);
    
    ПараметрКон=КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаКон"));
    ЗаполнитьЗначенияСвойств(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрКон.ИдентификаторПользовательскойНастройки),параметр);

Поэлементно, работает так.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.