![]() |
![]() |
![]() |
|
Промежуточный запрос в СКД | ☑ | ||
---|---|---|---|---|
0
MadFatCat
03.06.13
✎
17:35
|
Всем привет.
8.2 Обычное приложение. Ситуация такая. Ну очень нужно иметь возможность отбора(по сотрудникам и тп) в СКД, это я делаю через табличное поле Данные устанавливаю КомпоновщикНастроек.Настройки.Отбор. Полученные данные мне надо обработать и уже на основе их сформировать отчет, предполагаю сделать через набор данных объект загрузив в него таблицу значений. Вопрос в том как мне с начало выполнить запрос с отбором а затем загрузить таблицу значений и сформировать отчет. |
|||
1
Господин ПЖ
03.06.13
✎
17:37
|
прочитать настройки
выполнить простой запрос в теле отчета выгрузить в тз передать тз в скд успiх? |
|||
2
ILM
гуру
03.06.13
✎
17:40
|
Нах, такие заморочки. Копируй отбор в запрос - демонически )) На базе отбора делаешь запрос и его в СКД передавайте.
|
|||
3
Господин ПЖ
03.06.13
✎
17:45
|
(2) настройки не свалятся все?
|
|||
4
ILM
гуру
03.06.13
✎
17:57
|
Это как делать будете))
1) В запрос добавляем условия и параметры перебирая элементы отбора 2) Присваиваем значения параметров из значений отбора. 3) Выполняем отчет, если погуглить, то на мисте это уже обсуждалось: "Запрос из отбора". |
|||
5
Господин ПЖ
03.06.13
✎
17:59
|
(4) так я в (1) что не так написал? или там текст запроса в скд тоже меняется?
|
|||
6
azernot
03.06.13
✎
18:01
|
Ну вот как-то так:
Состояние("Выполнятется запрос к данным ИБ..."); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ТаблицаИсходныхДанных = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаИсходныхДанных); Попытка ПроцессорВывода.Вывести(ПроцессорКомпоновки); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Состояние("Выполнятется расчет показателей формы..."); ВыполнитьРасчетПоказателей(ТаблицаИсходныхДанных); //Тут делаешь, чего тебе надо.. Состояние("Выполнятется вывод данных..."); ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТаблицаРасчитанныхДанных", ТаблицаИсходныхДанных); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанныхДляВывода,КомпоновщикНастроекДляВывода.Настройки,ДанныеРасшифровкиОтчета,,Тип("ГенераторМакетаКомпоновкиДанных")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровкиОтчета, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.ОтображатьПроцентВывода = Истина; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ДокументРезультат); ТабДокумент = ЭлементыФормы.ДокументРезультат; ТабДокумент.Очистить(); ТабДокумент.Вывести(ПолучитьСворачиваемыйЗаголовок(СтруктураПоказателей)); ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
7
ILM
гуру
03.06.13
✎
18:23
|
Можно сразу запрос в СКД и параметры в СКД, без ТЗ. ТС отчет нужен, а не само ТЗ. Скорее всего большой разницы не будет, если конечно ТЗ не на сотню тысяч строк.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |