| 
    
        
     
     | 
    
  | 
Отчет СКД, программный вывод, при смене настроек (польз) формирует по по старым настройкам | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        SkillUp    
     10.02.20 
            ✎
    12:34 
 | 
         
        Здравствуйте, прошу помочь. Программно вывожу отчет СКД, если изменить настройки (допустим сфомировать за другой период). То выводит данные, из настроек, которые заполнили впервый раз, после открытия (т.е. первые настройки сохраняются, и формируется только по ним отчет). Как программно обновлять настройки каждый раз? В какой процедуре? Короче "плаваю" в этом вопросе. Форма отчета пустая..
 
        При программном выводе отчета у меня только одна процедура: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) 1) Начало: СтандартнаяОбработка = Ложь; 2) Программное заполнение полей СКД: ... 3) Завершение процедуры: //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; //Передаем внешний набор данных ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); //Очищаем поле табличного документа ДокументРезультат.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры  | 
|||
| 
    1
    
        SkillUp    
     10.02.20 
            ✎
    12:39 
 | 
         
        "Форма отчета пустая..." Хотел объяснить, что там нету кода. Все по умолчанию.     
         | 
|||
| 
    2
    
        fisher    
     10.02.20 
            ✎
    12:51 
 | 
         
        Если это УФ и используются пользовательские настройки СКД, то и программно изменять настройки нужно именно через "ПользовательскиеНастройки".
 
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); В этой строчке непонятно откуда у тебя берутся "Настройки". Штатно, если хочешь получить настройки с учетом "ПользовательскиеНастройки", там должны быть КомпоновщикНастроек.ПолучитьНастройки()  | 
|||
| 
    3
    
        SkillUp    
     10.02.20 
            ✎
    13:01 
 | 
         
        (2) Да, у меня так :     
 
        //Получаем схему из макета СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Из схемы возьмем настройки Настройки = КомпоновщикНастроек.ПолучитьНастройки();  | 
|||
| 
    4
    
        SkillUp    
     10.02.20 
            ✎
    13:09 
 | 
         
        (2) Все разобрался, СПАСИБО!     
         | 
|||
| 
    5
    
        SkillUp    
     10.02.20 
            ✎
    13:59 
 | 
         
        Может кому-то поможет:
 
        ПараметрНач=КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНач")); ЗаполнитьЗначенияСвойств(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрНач.ИдентификаторПользовательскойНастройки),параметр); ПараметрКон=КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаКон")); ЗаполнитьЗначенияСвойств(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрКон.ИдентификаторПользовательскойНастройки),параметр); Поэлементно, работает так.  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |