1c 8.х Отчет на основе Универсального(построитель) + Внешний Источник таблица значений
Привет, Инфостарт! Платформа 8.3.13.1690 - конфа УПП 1.3 С построителем работаю первый раз, делаю отчет на основе Универсального отчета (на построителе) отчет с внешним источником данных в виде таблицы значений, на выходе хочу для начала плоскую таблицу. В результате в табличный документ выводятся заголовки колонок и итоги (пустые) по показателям и все, если поставить галку детальные записи, то в детальных записях выводятся только значения показателей. Налицо фундаментальное непонимание принципов, хотя говорят, построитель проще, чем СКД. Собственно код
Имена полей совпадают, источник данных непустой, подскажите, пожалуйста, что я делаю неправильно, что можно почитать про построитель из популярной литературы, а то Хрусталеву про построитель я не нашел. Спасибо.
Функция СформироватьСтруктуруТаблицыДанных()
ТипНоменклатура = Новый Массив;
ТипНоменклатура.Добавить(Тип("СправочникСсылка.Номенклатура"));
ТипЕдиницаИзмерения = Новый Массив;
ТипЕдиницаИзмерения.Добавить(Тип("СправочникСсылка.ЕдиницыИзмерения"));
ТипЧисло = Новый Массив;
ТипЧисло.Добавить(Тип("Число"));
Знак = ДопустимыйЗнак.Неотрицательный;
КвЧисла15_2 = Новый КвалификаторыЧисла(15, 2, Знак);
СтруктураДанных = Новый ТаблицаЗначений;
СтруктураДанных.Колонки.Добавить("Продукция", Новый ОписаниеТипов(ТипНоменклатура),"Продукция");
СтруктураДанных.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов(ТипНоменклатура),"Номенклатура");
СтруктураДанных.Колонки.Добавить("ЕдиницаИзмерения", Новый ОписаниеТипов(ТипЕдиницаИзмерения),"Ед. изм.");
СтруктураДанных.Колонки.Добавить("Применяемость", Новый ОписаниеТипов(ТипЧисло,,,КвЧисла15_2),"Применяемость");
СтруктураДанных.Колонки.Добавить("Цена", Новый ОписаниеТипов(ТипЧисло,,,КвЧисла15_2),"Цена");
СтруктураДанных.Колонки.Добавить("Стоимость",Новый ОписаниеТипов(ТипЧисло,,,КвЧисла15_2),"Стоимость");
ТаблицаДанных = СтруктураДАнных;
Возврат ТаблицаДанных;
КонецФункции
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
УниверсальныйОтчет.ИмяРегистра = "";
УниверсальныйОтчет.ОтрицательноеКрасным = Истина;
УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Истина;
УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина;
ИсточникДанныхОтчета= Новый ОписаниеИсточникаДанных(СформироватьСтруктуруТаблицыДанных());
ИсточникДанныхОтчета.Колонки.Продукция.Измерение=ЛОЖЬ;
ИсточникДанныхОтчета.Колонки.Номенклатура.Измерение=ЛОЖЬ;
ИсточникДанныхОтчета.Колонки.ЕдиницаИзмерения.Измерение=ЛОЖЬ;
ИсточникДанныхОтчета.Колонки.Применяемость.Итог = "СУММА(0)";
ИсточникДанныхОтчета.Колонки.Цена.Итог = "СУММА(0)";
ИсточникДанныхОтчета.Колонки.Стоимость.Итог = "СУММА(Стоимость)";
УниверсальныйОтчет.ПостроительОтчета.ИсточникДанных = ИсточникДанныхОтчета;
// Представления полей отчета.
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Продукция", "Продукция");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Номенклатура", "Исходная номенклатура");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "ЕдиницаИзмерения", "Ед. изм.");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Применяемость", "Применяемость");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Цена", "Цена посл. закупки");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Стоимость", "Стоимость посл. закупки");
//ДобавлениеВыбранныхПолей
//УниверсальныйОтчет.ПостроительОтчета
// Добавление показателей
УниверсальныйОтчет.ДобавитьПоказатель("ЕдиницаИзмерения", "Ед. изм.", Истина);
УниверсальныйОтчет.ДобавитьПоказатель("Применяемость", "Применяемость", Истина, "ЧЦ=15; ЧДЦ=2", "Показатели", "Показатели");
УниверсальныйОтчет.ДобавитьПоказатель("Цена", "Цена посл. закупки", Истина, "ЧЦ=15; ЧДЦ=2", "Показатели", "Показатели");
УниверсальныйОтчет.ДобавитьПоказатель("Стоимость", "Стоимость посл. закупки", Истина, "ЧЦ=15; ЧДЦ=2", "Показатели", "Показатели");
// Добавление предопределенных группировок строк отчета.
//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Продукция");
//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("ЕдиницаИзмерения");
//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Применяемость");
//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Цена");
// Добавление предопределенных отборов отчета.
УниверсальныйОтчет.ДобавитьОтбор("Продукция");
УниверсальныйОтчет.ДобавитьОтбор("Номенклатура");
// Установка связи подчиненных и родительских полей
// УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДанным>);
// Установка представлений полей
УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
УниверсальныйОтчет.ПостроительОтчета.ИзмеренияКолонки.Очистить();
// Установка типов значений свойств в отборах отчета
УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора();
// Заполнение начальных настроек универсального отчета
УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);
// Добавление дополнительных полей
// Необходимо вызывать для каждого добавляемого дополнительного поля.
// УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>);
КонецПроцедуры // УстановитьНачальныеНастройки()
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
// Перед формирование отчета можно установить необходимые параметры универсального отчета.
ЗаполнитьТаблицуДанных();
// Представления полей отчета.
УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить("Продукция","Продукция");
УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Номенклатура", "Номенклатура");
УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "ЕдиницаИзмерения", "ЕдиницаИзмерения");
УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Применяемость", "Применяемость");
УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Цена", "Цена");
УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Стоимость", "Стоимость");
Состояние("Вывожу отчет...");
УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект);
Состояние("Готово!");
КонецПроцедуры // СформироватьОтчет()
ПоказатьИмена полей совпадают, источник данных непустой, подскажите, пожалуйста, что я делаю неправильно, что можно почитать про построитель из популярной литературы, а то Хрусталеву про построитель я не нашел. Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот