Имя: Пароль:
1C
1С v8
СКД - программно установить вариант из другой обработки
0 ildary
 
23.08.17
09:32
Уважаемые специалисты, скажите пожалуйста, в СКД установить вариант отчета в модуле формы самого отчета можно так:

Варианты    = ОбъектОтчет.СхемаКомпоновкиДанных.ВариантыНастроек;
       Для Каждого Вариант Из Варианты Цикл
           Если вРег(Вариант.Имя) = вРег(ИмяВарианта) Тогда
               Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Вариант.Настройки);
           КонецЕсли;    
       КонецЦикла;

А как это сделать, если я вызываю отчет на СКД из другой обработки? Переменной ОбъектОтчет для вызываемого отчета у меня нет.

Когда выбирать вариант было не нужно (в отчете был один вариант), было достаточно сделать так:

Форма = ПолучитьФорму( ИмяОбработки + ".Форма" );
КомпоновщикНастроекКомпоновкиДанных = Форма.Отчет.КомпоновщикНастроек;
ПользовательскиеНастройки            = КомпоновщикНастроекКомпоновкиДанных.ПользовательскиеНастройки;


// что здесь надо сделать чтобы загрузились настройки нужного варианта?
// Установим отбор

ПараметрыОбработки.ПользовательскиеНастройки = ПользовательскиеНастройки;
        
Форма = ПолучитьФорму( ИмяОбработки + ".Форма", ПараметрыОбработки,, ЭтаФорма.УникальныйИдентификатор );
ОткрытьФорму(Форма);
1 aleks_default
 
23.08.17
09:41
ПараметрыФормы = Новый Структура("Отбор, ФиксированныеНастройки, КлючНазначенияИспользования, КлючВарианта, СформироватьПриОткрытии");
    ПараметрыФормы.СформироватьПриОткрытии = Истина;
ПараметрыФормы.Вставить("Отбор",Новый Структура("",));
    
ОткрытьФорму("Отчет.ТвойОтчет.Форма",
        ПараметрыФормы,
        ПараметрыВыполненияКоманды.Источник,
        ПараметрыВыполненияКоманды.Уникальность,

        ПараметрыВыполненияКоманды.Окно
2 ildary
 
23.08.17
09:44
(1) спасибо, попробую
AdBlock убивает бесплатный контент. 1Сергей