|
Выгрузить в таблицу значений СКД | ☑ | ||
---|---|---|---|---|
0
Germeer
26.02.15
✎
20:47
|
Приветствую.
Есть отчет на СКД, в отчете есть 2 варианта Основной и Расчет Пытаюсь выгрузить в Таблицу значений Вариант Расчет - не выгружается, ТЗ получается пустой. КомпоновщикНастроекТЗ = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекТЗ.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ВО = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Расчет"); КомпоновщикНастроекТЗ.ЗагрузитьНастройки(Во.Настройки); НастройкиКомпоновщика = КомпоновщикНастроекТЗ.Настройки; ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных; // устанавливаем параметры отчета ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачДата")); ЗначениеПараметра.Значение = НачДата; ЗначениеПараметра.Использование = Истина; //КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(ПользовательскаяНастройкаПоиска.ХранилищеЗначений.Получить()); // Компоновка макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); // Инициализация процессора компоновки Процессор = Новый ПроцессорКомпоновкиДанных; Процессор.Инициализировать(МакетКомпоновкиДанных); // Таблица значений, в которую будет получен результат ТЗ = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(Процессор); Что делаю не так? По идее ТЗ нужна для расчета колонок, которые потом будут загружены в отчет Основной. Может кто-нибудь может предложить более лёгкий вариант, всё перепробовал и вычисляемые поля (но там загвоздка: колонки выгружаются в цикле, поэтому получить сразу все колонки для обработки не получается) Заранее Спасибо всем откликнувшимся. |
|||
1
Germeer
27.02.15
✎
10:38
|
Ни у кого нет соображений?
|
|||
2
Godofsin
27.02.15
✎
10:42
|
(1) То есть вариант, что запрос ничего не вернул, вы отвергаете?
|
|||
3
Germeer
27.02.15
✎
10:56
|
Там есть колонки, но нет строк :-(
+ есть отбор по Подразделению, Сотруднику, как эти отборы в варианте ОСНОВНОЙ программно засунуть в вариант РАСЧЕТ? |
|||
4
Godofsin
27.02.15
✎
10:58
|
(3) Еще раз, по вашему запросу и отбору есть данные для выборки? Или ТЗ пустое, ибо ему показывать нечего
|
|||
5
Godofsin
27.02.15
✎
10:59
|
(3) Ну отборы СКД доступны программно, крутите их как хотите?
|
|||
6
Godofsin
27.02.15
✎
10:59
|
? = .
|
|||
7
vhl
27.02.15
✎
10:59
|
(3) есть колонки, но нет строк - как раз и значит, что скд отработала и результат запроса - пустой
|
|||
8
Germeer
27.02.15
✎
11:16
|
Всё, допетрил.
КомпоновщикНастроекТЗ = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекТЗ.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ВО = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Расчет"); КомпоновщикНастроекТЗ.ЗагрузитьНастройки(Во.Настройки); НастройкиКомпоновщика = КомпоновщикНастроекТЗ.Настройки; ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных; ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачДата")); ЗначениеПараметра.Значение = НачДата; ЗначениеПараметра.Использование = Истина; ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Организация")); ЗначениеПараметра.Значение = Организация; ЗначениеПараметра.Использование = Истина; КоллекцияОтборов = КомпоновщикНастроек.Настройки.Отбор.Элементы; Для каждого настр Из КоллекцияОтборов Цикл ЭлементОтбора = НастройкиКомпоновщика.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ВидСравнения = настр.ВидСравнения; ЭлементОтбора.Использование =настр.Использование; ЭлементОтбора.ЛевоеЗначение = Настр.ЛевоеЗначение; ЭлементОтбора.ПравоеЗначение = Настр.ПравоеЗначение; КонецЦикла; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); Процессор = Новый ПроцессорКомпоновкиДанных; Процессор.Инициализировать(МакетКомпоновкиДанных); ТЗ = Новый ТаблицаЗначений; ТЗ.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(Процессор); Так всё работает и отбор и выводит строки. Вспомнил про ДАТУ, но забыл про ОРГАНИЗАЦИЮ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |