|
Результат СКД в таблицу значений | ☑ | ||
---|---|---|---|---|
0
alnovin
27.02.13
✎
00:40
|
Всем привет!
Тема замусоленная, и тем не менее. Не получается разобраться. Идея стара как мир: открыть обработку, инициализировать настройки СКД, соответственно отбора и вывод результата в таблицу значений для последующей обработки. 1 этап. Все работает. Процедура ЗагрузитьНастройкиСКД() ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); СКД = ОбработкаОбъект.ПолучитьМакетСКД("СКД"); АдресСКД = ПоместитьВоВременноеХранилище(СКД, УникальныйИдентификатор); КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД)); УстановтьОтборПоПолюКомпоновки("Организация",Справочники.Организации.ПустаяСсылка(),ВидСравненияКомпоновкиДанных.Равно); УстановтьОтборПоПолюКомпоновки("Контрагент",Справочники.Контрагенты.ПустаяСсылка(),ВидСравненияКомпоновкиДанных.Равно); УстановтьОтборПоПолюКомпоновки("ДоговорКонтрагента",Справочники.ДоговорыКонтрагентов.ПустаяСсылка(),ВидСравненияКомпоновкиДанных.Равно); // Добавим выбранные поля Для Каждого Элемент из КомпоновщикНастроекКомпоновкиДанных.Настройки.Выбор.ДоступныеПоляВыбора.Элементы Цикл Если НЕ Элемент.Папка Тогда ВыбранноеПоле = КомпоновщикНастроекКомпоновкиДанных.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Использование = Истина; ВыбранноеПоле.Поле = Элемент.Поле; КонецЕсли; КонецЦикла; КонецПроцедуры 2. Этап. Вывод. Не работает. Процедура ЗаполнитьТаблицуДокументовНаСервере() ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); СКД = ОбработкаОбъект.ПолучитьМакетСКД("СКД"); УстановитьПараметрКомпоновки("ДатаНачала",Период.ДатаНачала); УстановитьПараметрКомпоновки("ДатаОкончания",Период.ДатаОкончания); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, КомпоновщикНастроекКомпоновкиДанных.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ТабДокументов = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТабДокументов); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры Переменная "ТабДокументов" не содержит строк. Если Схему загрузить в отчет, то требуемый результат выводится. Что не так? |
|||
1
GANR
27.02.13
✎
00:45
|
Глянь по отладчику ТабДокументов.Колонки. Там пусто?
|
|||
2
France
27.02.13
✎
01:26
|
Вот чего с СКД не понимаю, та это - почему бы не использовать типовой шаблон? 99.99 % проблем решает, которые на месте пытаются обсудить
|
|||
3
alnovin
27.02.13
✎
07:02
|
(1) все верно, в колонках пусто. Но я же определил поля. Группировки надо генерить?
|
|||
4
alnovin
27.02.13
✎
07:27
|
Утро вечера мудренее. Разобрался.
Процедура ЗагрузитьНастройкиСКД() ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); СКД = ОбработкаОбъект.ПолучитьМакетСКД("СКД"); АдресСКД = ПоместитьВоВременноеХранилище(СКД, УникальныйИдентификатор); КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД)); УстановтьОтборПоПолюКомпоновки("Организация",Справочники.Организации.ПустаяСсылка(),ВидСравненияКомпоновкиДанных.Равно); УстановтьОтборПоПолюКомпоновки("Контрагент",Справочники.Контрагенты.ПустаяСсылка(),ВидСравненияКомпоновкиДанных.Равно); УстановтьОтборПоПолюКомпоновки("ДоговорКонтрагента",Справочники.ДоговорыКонтрагентов.ПустаяСсылка(),ВидСравненияКомпоновкиДанных.Равно); ДобавитьВыбранноеПоле(КомпоновщикНастроекКомпоновкиДанных, "Организация"); ДобавитьВыбранноеПоле(КомпоновщикНастроекКомпоновкиДанных, "Контрагент"); ДобавитьВыбранноеПоле(КомпоновщикНастроекКомпоновкиДанных, "ДоговорКонтрагента"); ДобавитьГруппировку(КомпоновщикНастроекКомпоновкиДанных, "Организация"); ДобавитьГруппировку(КомпоновщикНастроекКомпоновкиДанных, "Контрагент"); ДобавитьГруппировку(КомпоновщикНастроекКомпоновкиДанных, "ДоговорКонтрагента"); КонецПроцедуры исходные функции есть в модулях УТ11 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |