|
СКД: Как получить реальный запрос и результат запроса из СКД? | ☑ | ||
---|---|---|---|---|
0
Икогнито
14.09.09
✎
12:47
|
Как получить реальный запрос и результат запроса из СКД?
|
|||
1
Darky
14.09.09
✎
12:49
|
что нужно? текст запроса чтоль?
|
|||
2
Deon
14.09.09
✎
12:50
|
реальный это который уходит sql-серверу?
|
|||
3
Икогнито
14.09.09
✎
12:54
|
(2) нет,
- нужен тот текст запроса, который сгенерировался в зависимости от настроек - нужен результат этого запроса |
|||
4
IronDemon
14.09.09
✎
12:55
|
||||
5
IronDemon
14.09.09
✎
12:56
|
||||
6
Икогнито
14.09.09
✎
12:58
|
типовыми методами никак?
Неужели нельзя посмотреть результат запроса компоновки данных? |
|||
7
Икогнито
14.09.09
✎
12:58
|
+(6) и поюзать его еще где-нить?
|
|||
8
IronDemon
14.09.09
✎
13:00
|
Результат можно выгрузить в таблицу значений.
|
|||
9
Darky
14.09.09
✎
13:06
|
никогда не сталкивался, но думаю нужно искать здесь СхемаКомпоновкиДанных.НаборыДанных
|
|||
10
Икогнито
14.09.09
✎
13:47
|
up
|
|||
11
Икогнито
14.09.09
✎
13:52
|
надо обработать данные, которые вывела компоновка данных
|
|||
12
Defender aka LINN
14.09.09
✎
13:53
|
(11) Как это связано с (0)?
|
|||
13
Икогнито
14.09.09
✎
14:23
|
(12) юзер строит отчет в компоновке данных. Затем юзер хочет, чтобы номенклатура, попавшая в отчет выгрузилась кое-куда...
Т.е. мне нужно узнать, какие позиции вывелись в отчет... |
|||
14
DmitrO
14.09.09
✎
14:33
|
Процедура СообщитьЗапросы(МакетКомпоновки, Уровень)
Для каждого Набор из МакетКомпоновки.НаборыДанных Цикл Сообщить("Уровень "+Уровень+": "+Набор.Имя); Сообщить(Набор.Запрос); Для каждого ЭлементТела из МакетКомпоновки.Тело Цикл Если ТипЗнч(ЭлементТела)=Тип("ГруппировкаМакетаКомпоновкиДанных") Тогда Для каждого ЭлементТелаГруппировки из ЭлементТела.Тело Цикл Если ТипЗнч(ЭлементТелаГруппировки)=Тип("ВложенныйОбъектМакетаКомпоновкиДанных") Тогда СообщитьЗапросы(ЭлементТелаГруппировки.КомпоновкаДанных, Уровень+1) КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
15
DmitrO
14.09.09
✎
14:36
|
(14) это ответ на (0)
Но учитывая (13) задача несколько сложнее.. и текст запроса тут может быть не совсем то на чем нужно строить решение. |
|||
16
Икогнито
14.09.09
✎
14:36
|
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"),ЭтотОбъект.КомпоновщикНастроек.Настройки,ИнформацияРасшифровки,); ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("СтавкиАренды",СтавкиАренды); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ИнформацияРасшифровки,Истина); ДокументРезультат = ЭлементыФормы.Результат; //ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; //ПроцессорВывода.УстановитьДокумент(ДокументРезультат); // //ПроцессорВывода.Вывести(ПроцессорКомпоновки,Истина); ТЗ = Новый ТаблицаЗначений; ПроцессорВыводаВКоллекцию = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВыводаВКоллекцию.УстановитьОбъект(ТЗ); ПроцессорВыводаВКоллекцию.Вывести(ПроцессорКомпоновки,Истина); ПроцессорВыводаВКоллекцию.Вывести(ПроцессорКомпоновки,Истина) - вызывает ошибку, что неизвестен тип макета... |
|||
17
Икогнито
14.09.09
✎
14:40
|
Хорошо, как данные компоновки вывести и в макет и в таблицу значений?
|
|||
18
DmitrO
14.09.09
✎
14:41
|
(16) надо тип генератора другой указывать:
МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"),ЭтотОбъект.КомпоновщикНастроек.Настройки,ИнформацияРасшифровки,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); |
|||
19
Икогнито
14.09.09
✎
14:57
|
(18) спасибо, именно это и хотел
|
|||
20
cViper
15.09.09
✎
18:26
|
(16) Делаю тоже самое но у меня почему-то выдает ошибку:
{Форма.ФормаОтчета(124)}: Ошибка при вызове метода контекста (Выполнить): Несоответствие типов (параметр номер '4') МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"),ЭтотОбъект.КомпоновщикНастроек.Настройки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); по причине: Несоответствие типов (параметр номер '4') |
|||
21
sapphire
15.09.09
✎
18:27
|
Функция ПолучитьРезультатКомпоновки(Режим=Ложь,Результат=неопределено,МакетКомпоновки,Настройки=неопределено,ВнешниеДанные=неопределено,МакетОформления=неопределено,ПоказыватьВывод=Ложь) Экспорт
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки= Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(МакетКомпоновки ,?(Настройки=неопределено,МакетКомпоновки.НастройкиПоУмолчанию,Настройки) //Настройки ,ДанныеРасшифровки //Расшифровка ,МакетОформления //МакетОформления ,?(Режим,неопределено,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")) ); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,ВнешниеДанные); ПроцессорВывода =?(Режим,Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент, Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений) ; Если Не Результат=неопределено Тогда Если Режим Тогда ПроцессорВывода.УстановитьДокумент(Результат); Иначе ПроцессорВывода.УстановитьОбъект(Результат); КонецЕсли; КонецЕсли; возврат ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных,ПоказыватьВывод); КонецФункции |
|||
22
cViper
15.09.09
✎
18:39
|
(21) Спасибо. Посмотрю сейчас.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |