8.х Программно установить параметр с формы

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Svb, 8 фев 2016.

  1. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Решил сделать отчет на СКД... и все целый день убил... Вот вторая проблема с тем же отчетом.
    Разместил на форме две кнопки. По нажатию на первую должен выполняться "Детальный" вариант, по нажатию "Список" должен выполняться вариант "Список". С этим после полутора часов - разобрался.
    Теперь надо установить параметр заданный на форме при программно формировании отчета. Мне программно прочитать значение "Администратор" с формы отчета?

    Код:
    &НаКлиенте
    Процедура Детальный(Команда)
       
        НаименованиеТекущегоВарианта = "Детальный";
        СформироватьОтчетНаСервере(Результат);
    
    КонецПроцедуры
    
    &НаКлиенте
    Процедура Список(Команда)
       
        НаименованиеТекущегоВарианта  = "Список";
        СформироватьОтчетНаСервере(Результат);
    
    КонецПроцедуры
    
    &НаСервере
    Процедура СформироватьОтчетНаСервере(ТабДок)
       
        ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
       
        СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
                                    
        // Загружаем нужный вариант настроек
        СтруктураВариантов = Новый Структура;
        КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
        Для Каждого ВариантНастроек ИЗ СхемаКомпоновкиДанных.ВариантыНастроек Цикл
            СтруктураВариантов.Вставить(ВариантНастроек.Имя, ВариантНастроек.Настройки);   
        КонецЦикла;
        КомпоновщикНастроек.ЗагрузитьНастройки(СтруктураВариантов[НаименованиеТекущегоВарианта]);
        КомпоновщикНастроек.ПолучитьНастройки();
        // --
       
        //ПараметрМенеджер = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0];
        //ПараметрМенеджер.Значение = Справочники.Пользователи.НайтиПоНаименованию("Касаткика");
        //
        НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
       
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, );
       
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
       
        ТабДок.Очистить();
       
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        ПроцессорВывода.УстановитьДокумент(ТабДок);   
        ПроцессорВывода.Вывести(ПроцессорКомпоновки);
       
    КонецПроцедуры
    Результат.JPG
  2. web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    905
    Симпатии:
    4
    Баллы:
    29
    Насколько я знаю это все внастройках пользователя, поищи в отладчике в "Компоновка.....", вбей в общем компоновка, нажми контл+пробел и он тебе подсунет компоновку не помню точное наименование, и внутри нее есть настройки, там ищи
  3. denris
    Offline

    denris

    Регистрация:
    15 мар 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Код:
    НстройкиОтчета = Отчет.КомпоновщикНастроек.Настройки;
        ЭлементыОтбора = НстройкиОтчета.Отбор.Элементы; 
       
        Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл  
            ПользовательскаяНастройка = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
            Если ПользовательскаяНастройка <> Неопределено Тогда
                ЗаполнитьЗначенияСвойств(ЭлементОтбора,ПользовательскаяНастройка,,"ЛевоеЗначение,РежимОтображения");
            КонецЕсли;
        КонецЦикла;

Поделиться этой страницей