|
Выгрузка результата СКД в ТЗ |
☑ |
0
ildary
06.05.17
✎
12:38
|
Уважаемые специалисты, подскажите пожалуйста, почему в одном случае код работает как надо, во втором нет? Я программно открываю отчет на СКД и при компоновке выгружаю результат в ТЗ. Если при открытии сделать отбор вот так:
Параметр = ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра( Новый ПараметрКомпоновкиДанных( "Номенклатура" ) );
Параметр.Значение.ЗагрузитьЗначения( ОбъектыНазначения.ВыгрузитьЗначения() );
Параметр.Использование = Истина;
то в ТЗ выгружаются данные с отбором,
а если сделать так (код упрощен):
КомпоновщикНастроекКомпоновкиДанных = Отчет.КомпоновщикНастроек;
ПользовательскиеНастройки = КомпоновщикНастроекКомпоновкиДанных.ПользовательскиеНастройки;
ОтборОтч = ПользовательскиеНастройки.Элементы.Найти( ИдОтбора );
ОтборОтч.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборОтч.ПравоеЗначение = ОбъектыНазначения;
ОтборОтч.Использование = Истина;
то в ТЗ попадают все данные, без наложения отбора.
Что надо сделать, чтобы второй вариант работал с отбором? Мне он предпочтительнее, потому что хочется, чтобы пользователь мог менять отбор после открытия.
|
|
1
ildary
07.05.17
✎
20:24
|
Апну тему разок.
|
|
2
Zhuravlik
07.05.17
✎
23:22
|
ПользовательскиеНастройки = КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
//....
КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(ПользовательскиеНастройки)
|
|
3
EvgeniuXP
08.05.17
✎
00:44
|
(0) потому что во всей этой каше там надо очень хорошо разбираться, что делаешь.
|
|
4
ildary
10.05.17
✎
08:31
|
(2) к сожалению эта строка не будет работать - у ПользовательскиеНастройки другой тип.
Я попробовал
КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьПользовательскиеНастройки(ПользовательскиеНастройки); - результат тот же - отбор не наложился.
(3) Согласен, но времени освоить учебник по СКД не хватает. Будьте любезны, подскажите неучу, как правильно программно установить отбор?
|
|
5
ildary
10.05.17
✎
08:38
|
В итоге заработало вот так:
КомпоновщикНастроекКомпоновкиДанных = Отчет.КомпоновщикНастроек;
НовыеНастройки = КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
НовыеНастройки.Отбор,
"Номенклатура",
ОбъектыНазначения,
ВидСравненияКомпоновкиДанных.ВСписке,
,
Истина);
КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(НовыеНастройки);
|
|