Имя: Пароль:
1C
1С v8
СКД: результат запроса СКД в табличный документ и колекцию значений
,
0 CTmuB
 
20.12.12
12:24
Вопрос по "ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений & ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент"

Как сразу после вывода результата запроса в табличный документ сразу сохранить его (результат запроса) в ТаблицуЗначений (колекцию значений)
без повторного вызова

КомпоновщикМакета.Выполнить(...);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
1 cw014
 
20.12.12
12:26
А чем тебе повторный вызов не устроил?
2 Нуф-Нуф
 
20.12.12
12:27
сделать два процессора вывода?
3 CTmuB
 
20.12.12
12:27
(1) запрос выполняется дооолго
4 CTmuB
 
20.12.12
12:28
(2) запрос два раза выполняется доооолго
5 CTmuB
 
20.12.12
12:37
Уточню суть вопроса.
Есть отчет на СКД, который выводится на экран. Как обратится к результату запроса/выборке?
6 le_
 
20.12.12
12:39
(5) Выполни запрос, помести результат в ТЗ, в СКД передай уже готовую ТЗ.
7 CTmuB
 
20.12.12
12:42
(6) запрос с группировками, генерится динамически, каждый раз разный
8 CTmuB
 
20.12.12
12:43
(6) или я чето не понял?
9 le_
 
20.12.12
12:46
(7) И что? Схему создать и настройки установить можно программно.
10 CTmuB
 
20.12.12
12:49
(9) можно поподробнее про (6)
11 CTmuB
 
20.12.12
12:51
(6)
"Выполни запрос" - выполнил
"в СКД передай уже готовую ТЗ" - не понял, как?
12 pessok
 
20.12.12
12:55
(10) внешний источник данных тебе предлагают использовать
13 CTmuB
 
20.12.12
13:00
(12) то что внешний источник понял, запрос выполнил, как передать готовый результат запроса в СКД?
14 pessok
 
20.12.12
13:02
(13) не, передать ты сможешь только ТЗ или ДЗ туда. настройки можно формировать динамически, в зависимости от твеого ТЗ или ДЗ
15 le_
 
20.12.12
13:02
Процедура ДействияФормыСформировать(Кнопка)
   ВнешниеНаборыДанных = Новый Структура;
   ТЗКотораяТебеНужнаДляОбработки = СформироватьТЗ();
   //делай с ТЗ, что хочешь
   //...
   ВнешниеНаборыДанных.Вставить("ТЗ", ТЗКотораяТебеНужнаДляОбработки);
   СхемаКомпоновкиДанных = ПолучитьМакет("СКД");
   Настройки = КомпоновщикНастроек.Настройки;
   ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных;
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровкиСКД);
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровкиСКД, Истина);
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   //делай с ТЗ, что хочешь
   //...
КонецПроцедуры
16 CTmuB
 
20.12.12
13:05
(15) спасибо. Написано как для меня. :-)