1. pvl_mksv 23.03.19 23:48 Сейчас в теме

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", "Показатели", "Показатели");
		// Добавление предопределенных группировок строк отчета.
		//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Продукция");
		//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
		//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("ЕдиницаИзмерения");
		//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Применяемость");
		//УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Цена");

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

Показать

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

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день