Имя: Пароль:
1C
 
СКД: Как получить реальный запрос и результат запроса из СКД?
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) Спасибо. Посмотрю сейчас.