|
Пользовательский отбор в отчетах СКД с использованием Набора данных объект | ☑ | ||
---|---|---|---|---|
0
Lancer666
29.07.13
✎
15:59
|
Здравствуйте, уважаемые коллеги. Интересует следующий вопрос. Создаю отчет на СКД, добавляю внешний набор данных ОБЪЕКТ, которому передаю в качестве значения Таблицу значения в коде. Всё хорошо, всё работает, отчет выводит все необходимые данные. Но когда я добавляю быстрый пользовательский отбор (на панели настроек справа), выбираю что то в этот пользовательском отборе, он просто не срабатывает. Это как то связано с использованием НАБОРА ДАННЫХ ОБЪЕКТ вместо НАБОРА ДАННЫХ ЗАПРОС или я что то делаю не так? Заранее спасибо.
|
|||
1
Bober
29.07.13
✎
17:39
|
(0) какая версия платформы?
|
|||
2
Lancer666
29.07.13
✎
18:51
|
Bober, платформа 8.2.16.362
|
|||
3
Lancer666
29.07.13
✎
21:56
|
Всё, сам добрался до истины. Брал часть коды для полной замены в функции ОбновитьОтчет из описанных в интернете для добавления Источника данных Объект, оказывается этот код в отличие от замененной части кода в функции ОбновитьОтчет не подцепляет настройки из пользовательской панели. Может кому то будет интересно. Окончательный код для функции ОбновитьОтчет модуля формы отчета СКД, который во-первых добавляет внешний набор данных ТЗ, во-вторых, учитывает значения внесенные на пользовательской панеле (например, пользовательские "быстрые" отборы):
Процедура ОбновитьОтчет() Экспорт ЭлементыФормы.Результат.Очистить(); ВнешниеНаборыДанных=Новый Структура; ВнешниеНаборыДанных.Вставить("ТЗДокументы",ТЗДокументы); СостояниеМодифицированности = Модифицированность; Если ПанельНастроекНарисована <> Истина Тогда ОбновлениеОтображения(); КонецЕсли; ТиповыеОтчеты.ЗагрузитьВРеквизитЗначенияНастроекПанелиПользователя(ЭтотОбъект, ЭтаФорма); ПараметрыПанели = ТиповыеОтчеты.ПолучитьПараметрыПанелиПользователяОбъекта(ОтчетОбъект); ЗначенияНастроек = ТиповыеОтчеты.ПолучитьЗначенияНастроекПанелиПользователяОбъекта(ОтчетОбъект); ТиповыеОтчеты.ПолучитьПримененуюНастройку(ОтчетОбъект); КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных; Настройки=КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки); ДокументРезультат=ЭлементыФормы.Результат; ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата=ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата=Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ДокументРезультат.ОтображатьСетку=Ложь; ДокументРезультат.ОтображатьЗаголовки=Ложь; ДокументРезультат.Показать(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |