Имя: Пароль:
1C
1С v8
Программно параметры в СКД (помогите пжлст)
0 Chameleon1980
 
18.06.15
07:58
Приветствую. Есть следующий код:

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


но это код не воспринимает параметры (например отбор) которые я устанавливаю в варианте отчета (пользовательский режим).

ткните носом где затык, пожалуйста.
1 Chameleon1980
 
18.06.15
08:00
крутил уже по-разному.
и в инете вчера искал. И книгу вчера/сегодня Хрусталевой перелистывал.

не клюет и все чет.
2 Мимохожий Однако
 
18.06.15
08:03
Попробуй сохранить пользовательский вариант в файл. А в коде добавь обращение к этому файлу.
3 Мимохожий Однако
 
18.06.15
08:04
Можно в отдельный макет внутри обработки (отчета) сохранить настройки
4 Chameleon1980
 
18.06.15
08:15
что за вариант такой.

это как это будет потом?

юзер-то каждый раз может менять настройки.

надо чтобы этот код понимал настройки пользователя.
5 Chameleon1980
 
18.06.15
08:16
+ причино-то очень хочеться понять
6 Chameleon1980
 
18.06.15
09:00
пардон. типа ап. и вот этот код, может быть, понятней будет.

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

    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    Настройки = КомпоновщикНастроек.Настройки;    
    
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
    КомпоновщикНастроек.Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    ТаблицаНоменклатуры.Загрузить(ТаблицаЗначений.Скопировать());
КонецПроцедуры
7 vicof
 
18.06.15
09:21
8 Chameleon1980
 
18.06.15
09:38
(7) спасибо большое, но иииыых.
нету счас доступа.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.