Имя: Пароль:
1C
1С v8
Результат СКД в таблицу значений
0 IAleksa
 
13.10.11
16:05
Подскажите пожалуйста как результат СКД в таблицу значений загрузить? Программа ЗУП, отчет правлю типовой по исполнительным листам...
1 Санта
 
13.10.11
16:10
ручами надо все делать
2 Санта
 
13.10.11
16:10
+(1) в смысле, что конструктором не обойтись тут.
Надо всю компоновку кодом строить.
3 IAleksa
 
13.10.11
16:12
т.е. надо сделать отчет внешним и скопировать в него весь код из общих модулей, а потом править его?
4 Maxus43
 
13.10.11
16:16
в книге Хрусталёвой есть пример как делать
5 zippygrill
 
13.10.11
16:17
пример. ....Программно формируем отчет и дальше через МВТ....
   
ДанныеРасшифровки= Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
   
МВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = МакетКомпоновки.НаборыДанных[0].Запрос;
Для Каждого Параметр из МакетКомпоновки.ЗначенияПараметров Цикл
   Запрос.УстановитьПараметр(Параметр.Имя, Параметр.Значение);        
КонецЦикла;
ТЗ = Запрос.Выполнить().Выгрузить();
6 Amiralnar
 
13.10.11
16:20
(5) Тут будет только запрос. А как-же вычисляемые поля, ресурсы, отборы?
7 sivalor
 
13.10.11
16:22
СКД = Новый СхемаКомпоновкиДанных;
   
//Опишем источники как они есть в отчете
ИсточникДанных = СКД.ИсточникиДанных.Добавить();
ИсточникДанных.Имя = "ИсточникДанных1";
ИсточникДанных.ТипИсточникаДанных = "Local";

НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
НаборДанных.ИсточникДанных = "ИсточникДанных1";
НаборДанных.Запрос = ТекстЗапроса;
   
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
Компоновщик.ЗагрузитьНастройки(КомпоновщикНастроек.Настройки); //Настрой получим из настоящего отчета
Компоновщик.Восстановить();
       
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

ТаблицаЗначений = Новый ТаблицаЗначений;
   
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
   
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
8 also
 
13.10.11
16:23
9 sivalor
 
13.10.11
16:25
или так?)
ТаблицаЗначений = Новый ТаблицаЗначений;
ТиповыеОтчеты.СформироватьТиповойОтчет(ЭтотОбъект, ТаблицаЗначений, ДанныеРасшифровки, Ложь);
10 zippygrill
 
13.10.11
16:26
(6) я думал она знает как программно доводить отчета до экрана :)
11 sivalor
 
13.10.11
16:29
(10) тебе сказали, что твой вариант не учитывает настройки СКД. Экран тут не при чем.
2 + 2 = 3.9999999999999999999999999999999...