1c 8.х Отчет на основе Универсального(построитель) + Внешний Источник таблица значений

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

		// Добавление предопределенных отборов отчета.
		УниверсальныйОтчет.ДобавитьОтбор("Продукция");
		УниверсальныйОтчет.ДобавитьОтбор("Номенклатура");
		
		
		// Установка связи подчиненных и родительских полей
		// УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДанным>);
		
		// Установка представлений полей
		УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
		УниверсальныйОтчет.ПостроительОтчета.ИзмеренияКолонки.Очистить();
		// Установка типов значений свойств в отборах отчета
		УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора();
		// Заполнение начальных настроек универсального отчета
		УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);
		
		// Добавление дополнительных полей
		// Необходимо вызывать для каждого добавляемого дополнительного поля.
		// УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>);
		
	КонецПроцедуры // УстановитьНачальныеНастройки()
	Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
		
		// Перед формирование отчета можно установить необходимые параметры универсального отчета.
		ЗаполнитьТаблицуДанных();
		// Представления полей отчета.
		УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить("Продукция","Продукция");
		УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Номенклатура",		"Номенклатура");
		УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "ЕдиницаИзмерения",	"ЕдиницаИзмерения");
		УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Применяемость",		"Применяемость");
		УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Цена",				"Цена");
		УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить( "Стоимость",          "Стоимость");
		
		Состояние("Вывожу отчет...");
		УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект);
		Состояние("Готово!");
		
	КонецПроцедуры // СформироватьОтчет()

Показать

Имена полей совпадают, источник данных непустой, подскажите, пожалуйста, что я делаю неправильно, что можно почитать про построитель из популярной литературы, а то Хрусталеву про построитель я не нашел. Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dmitrij-2 45 24.03.19 08:20 Сейчас в теме
(1) сделать без построителя
3. pvl_mksv 20 24.03.19 19:17 Сейчас в теме
4. pvl_mksv 20 24.03.19 23:09 Сейчас в теме
(3)результат построителя тоже непустой
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот