СКД Добавить программно ресурс
☑
0
Sereja
05.02.14
✎
16:05
Добрый день. Есть отчет, СКД. НаборНаддых = Объект(ТаблицаЗначений)
Хочу добавить программно ресурс и измерение.
Ресурс1 и Измерение1 Добавил вручную в СКД. Ресурс2 и Измерени2 хочу вывести программно. Никак не получается. Посмотрите код:
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Измерение1");
Таблица.Колонки.Добавить("Измерение2");
Таблица.Колонки.Добавить("Ресурс1");
Таблица.Колонки.Добавить("Ресурс2");
нс = Таблица.Добавить();
нс.Измерение1 = "ааа";
нс.Измерение2 = "ббб";
нс.Ресурс1 = 1;
нс.Ресурс2 = 2;
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("Перевозки",Таблица);
СхемаКомпоновкиДанных = ПолучитьМакет("Макет");
НаборДанных = СхемаКомпоновкиДанных.НаборыДанных[0];
Поле1 = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = "Измерение2";
Поле1.ПутьКДанным = "Измерение2";
Поле1.Заголовок = "Измерение2";
Поле2 = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле2.Поле = "Ресурс2";
Поле2.ПутьКДанным = "Ресурс2";
Поле2.Заголовок = "Ресурс2";
ПолеРесурса = СхемаКомпоновкиДанных.ПоляИтога.Добавить();
ПолеРесурса.ПутьКДанным = "Ресурс2";
ПолеРесурса.Выражение = "Сумма(Ресурс2)";
//
ЭлементыФормы.Результат.Очистить();
Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ЭлементыФормы.Результат.ТолькоПросмотр = Истина;
1
szhukov
05.02.14
✎
16:11
(0) Как в любом запросе, колонки должны быть типизированными в таблице значений. Укажи тип колонок.
2
Sereja
05.02.14
✎
16:15
(1) Типизировал. Измерени1 и Ресурс1 выводятся и не типизированными.
Измерения2 и Ресурс2 не выводятся ни так, ни так
3
vicof
05.02.14
✎
16:18
И как измерение1 выводится, если оно к этому коду вообще никакого отношения не имеет?
4
Sereja
05.02.14
✎
16:23
(3)Измерение1 и Ресурс1 я вручную добавил в схему
А Измерени2 и Ресурс2 хотел добавить программно
Вопрос решен. Не хватало 2 строчек
ВыбранноеПоле = НастройкиКомпоновкиДанных.Выбор.Элементы.Добавить( Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Заголовок = "Ресурс2";
ВыбранноеПоле.Использование = Истина;
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Ресурс2");
5
Sereja
05.02.14
✎
16:23
Спасибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший