Помогите с выводом отчета, пожалуйста

1. aalu14 13.07.22 17:24 Сейчас в теме
Добрый день, есть отчет, который открывается по кнопке (Декорация1), его необходимо поместить в вывод остальных отчетов, которые выводятся с помощью кода ниже, как можно поступить, научите, пожалуйста? Заранее спасибо.
Скрин 1 - вывод отчетов
Скрин 2 - примерно как хотелось бы видеть тот отчет, который вызывается по нажатию.

&НаКлиенте
Процедура Декорация1Нажатие(Элемент)
	Отч = ПолучитьФорму("Отчет.Отчет.Форма.Отчет");
	Отч.Открыть();
	Отч.Отчет();
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьМакеты()
	
	НовыйМакет=ТабличноеПолеАнализ.Добавить();
	НовыйМакет.Название="Скорость";
	НовыйМакет.Описание="Скорость";
	НовыйМакет.НачалоПериода = НачалоГода(ТекущаяДата());
	НовыйМакет.КонецПериода = КонецГода(ТекущаяДата());
	
	НовыйМакет=ТабличноеПолеАнализ.Добавить();
	НовыйМакет.Название="Скорость2";
	НовыйМакет.Описание="Скорость 2";
	НовыйМакет.НачалоПериода = НачалоГода(ТекущаяДата());
	НовыйМакет.КонецПериода = КонецГода(ТекущаяДата());
	
КонецПроцедуры


&НаСервере
Функция ПолучитьМакет(НазваниеМакета)
	//Получаем схему из макета
	Об = РеквизитФормыВЗначение("Объект");
	СхемаКомпоновкиДанных = Об.ПолучитьМакет(НазваниеМакета);
	ЗначениеВРеквизитФормы(Об,"Объект");	
	Возврат СхемаКомпоновкиДанных;
КонецФункции

&НаКлиенте
Процедура ТабличноеПолеАнализВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	Если Поле.Имя = "ТабличноеПолеАнализОписание" Тогда
		СтандартнаяОбработка=ложь;
		ТекСтрока = ТабличноеПолеАнализ.Получить(ВыбраннаяСтрока);
		ВывестиОтчет(ТекСтрока.Название,ТекСтрока.НачалоПериода,ТекСтрока.КонецПериода);
		Элементы.ГруппаОтчеты.Текущаястраница = Элементы.Отчеты;
	КонецЕсли;
КонецПроцедуры

&НаСервере	
Процедура ВывестиОтчет(НазваниеМакета,НачалоПериода,КонецПериода)
		СхемаКомпоновкиДанных = ПолучитьМакет(НазваниеМакета);
		
		КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
		КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
		КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
		Настройки = КомпоновщикНастроек.Настройки;
		ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
		
		Если ПараметрПериод <> Неопределено Тогда
			ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
			ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
		КонецЕсли;
		
		ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
		
		КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
		
		МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
		
		ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
		ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
		
		Результат = МакетАнализ;
		Результат.Очистить();
		
		ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
		ПроцессорВывода.УстановитьДокумент(Результат);
		
		ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
		
		Результат.ОтображатьЗаголовки = Ложь;
		Результат.ОтображатьСетку = Ложь;
	
КонецПроцедуры

Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
16. spacecraft 14.07.22 13:51 Сейчас в теме +0.39 $m
(15) это смотрится так:
"Видел по телевизору, что в магазинах америки продается СуперУмбаЮмба.
Как мне ее купить в соседнем Магните?"
Ответ: никак.
Код в данном случае никак не поможет. Совсем другой принцип формирования отчета.
Если не знаете СКД, то создать отчет на нем будет очень сложно.
Парой фраз тут не обойтись.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. spacecraft 14.07.22 08:59 Сейчас в теме
(1) ничего не понятно. Попробуйте более подробно обрисовать ситуацию и что нужно.
Vlad_M_75; aalu14; +2 Ответить
4. aalu14 14.07.22 09:11 Сейчас в теме
(3)В прошлой теме Вы мне помогали вывести отчет в виде диаграммы. Выше листинг, как это происходит. Также, в этот же элемент формы необходимо вывести отчет, который вызывается (Процедура Декорация1Нажатие(Элемент)). Как он формируется ниже, макет в скрине:

Процедура Отчет() Экспорт
	ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
	ТабДок.АвтоМасштаб = Истина;
	
	
	Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	| Запрос "
	
	Запрос.Параметры.Вставить("Сотрудник",Справочники.Пользователи.НайтиПоКоду("ЦФП"));
	РезультатЗапроса = Запрос.Выполнить();
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	//ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
	
	ТабДок.Очистить();
	ОбластьЗаголовок.Параметры.Дата = ТекущаяДата();
	ТабДок.Вывести(ОбластьЗаголовок);
	ТабДок.Вывести(ОбластьШапкаТаблицы);
	ТабДок.НачатьАвтогруппировкуСтрок();
	
	ВыбИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	Если ВыбИтог.Следующий() Тогда
		ОбластьПодвалТаблицы.Параметры.Заполнить(ВыбИтог);
		ВыборкаДетальныеЗаписи = ВыбИтог.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
			ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
		КонецЦикла;
	КонецЕсли;
	ТабДок.ЗакончитьАвтогруппировкуСтрок();
	ТабДок.Вывести(ОбластьПодвалТаблицы);
	//ТабДок.Вывести(ОбластьПодвал);
	
КонецПроцедуры
Показать


Я не понимаю, куда мне это вставлять, я разобрался, как добавлять отчеты, которые в макете и настраиваются, а как поступать в данном случае, я не знаю.
Может быть существует простое решение, ведь по кнопке я вызываю всего лишь:
ПолучитьФорму("Отчет.Отчет.Форма.Отчет")


Как разделить логику на получение макета, а потом привязать этот новый макет к получаемой форме...
Нигде не могу найти хотя бы что-то подобное.
Прикрепленные файлы:
5. spacecraft 14.07.22 12:13 Сейчас в теме
(4) т.е. хотите внедрить вывод формы отчета в другую форму?
Так это не работает.
Нужно выводить результат в виде табличного документа в основной форме. Получать или заполнять сам ТабДок можно и в другой форме, если там будет клиентская экспортная функция, которая и вернет нужный ТабДок.
Или все перенести в основную форму.
6. aalu14 14.07.22 12:21 Сейчас в теме
(5) Создал макет с таким же запросом, как в том отчете, получилось прогнать через тот же обработчик скд. Но выводит только 1 строку вместо 8, не подскажете, как еще вывести Итоги (как на втором скрине) в скд, я так понимаю, нельзя сделать:
ИТОГИ
	СУММА(Договор),
	СУММА(Отказ),
	СУММА(ПолученПриказ),
	СУММА(Отмена),
	СУММА(Возвращено),
	СУММА(ОбщаяСумма),
	СУММА(СуммаПлатежей)
ПО
	ОБЩИЕ
Показать


Скрин как получилось и как надо
Прикрепленные файлы:
7. spacecraft 14.07.22 12:30 Сейчас в теме
(6) от этого понятнее не стало.
хорошо, что сами себя понимаете. Я вообще нить рассуждений потерял.

Скрины отчета показываете не на СКД. Потом вдруг СКД.

Итоги в несколько строк... хм.
8. aalu14 14.07.22 12:35 Сейчас в теме
(7)Из последнего сообщения два скрина, необходимо, чтобы такая же таблица, как на втором скрине, выводилась в поле справа на втором скрине.
9. spacecraft 14.07.22 12:40 Сейчас в теме
(8) Ну и? Итоги выводить в секции ПодвалТабличнойЧасти. Выводите детальные записи перед итогами.
Сам отчет есть, который уже выводит нормально?
10. aalu14 14.07.22 12:51 Сейчас в теме
(9)Да, есть, не знаю, как сделать такой же в отдельном макете...
11. spacecraft 14.07.22 12:54 Сейчас в теме
(10) что значит в отдельном макете? Макет это шаблон чего-то.
Сам отчет нужно повторить полностью (макет, код и возможно реквизиты формы) или изменить для получения его результата извне.
Или с нуля создать свой.
12. aalu14 14.07.22 13:06 Сейчас в теме
(11)
(10) что значит в отдельном макете? Макет это шаблон чего-то.
Сам отчет нужно повторить полностью (макет, код и возможно реквизиты формы) или изменить для получения его результата извне.
Или с нуля создать свой.


В первом сообщении листинг отчета*.
Мне этот отчет необходимо вывести на форму в поле, как у меня на скриншотах. Я вывожу через ПолучитьМакет, ВывестиОтчет (там настройки и остальное касательно компоновщика данных).
И вот вопрос, как мне создать макет такого же отчета (листинг отчета*), чтобы передать его в ПолучитьМакет и ВывестиОтчет, если там код оформления (Подвал и т.д.), в макете задал только такой же запрос (и не ясно, как в скд задать ИТОГИ). Выводится только 1 строка, а нужно 8, скрины выше.
13. spacecraft 14.07.22 13:16 Сейчас в теме
(12) не ищите легких путей. Полностью переделывайте на СКД.
14. aalu14 14.07.22 13:19 Сейчас в теме
(13)Да, я этим сейчас и занимаюсь, только не понимаю, почему выводится 1 строка и как вывести строку с итогами
15. aalu14 14.07.22 13:22 Сейчас в теме
(13) В работающем отчете после запроса идет
Запрос.Параметры.Вставить("Сотрудник",Справочники.Пользователи.НайтиПоКоду("ЦФП судебное                                      "));
	РезультатЗапроса = Запрос.Выполнить();
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	//ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
	
	ТабДок.Очистить();
	ОбластьЗаголовок.Параметры.Дата = ТекущаяДата();
	ТабДок.Вывести(ОбластьЗаголовок);
	ТабДок.Вывести(ОбластьШапкаТаблицы);
	ТабДок.НачатьАвтогруппировкуСтрок();
	
	ВыбИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	Если ВыбИтог.Следующий() Тогда
		ОбластьПодвалТаблицы.Параметры.Заполнить(ВыбИтог);
		ВыборкаДетальныеЗаписи = ВыбИтог.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
			ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
		КонецЦикла;
	КонецЕсли;
	ТабДок.ЗакончитьАвтогруппировкуСтрок();
	ТабДок.Вывести(ОбластьПодвалТаблицы);
Показать


Как мне реализовать это же только в скд?
16. spacecraft 14.07.22 13:51 Сейчас в теме +0.39 $m
(15) это смотрится так:
"Видел по телевизору, что в магазинах америки продается СуперУмбаЮмба.
Как мне ее купить в соседнем Магните?"
Ответ: никак.
Код в данном случае никак не поможет. Совсем другой принцип формирования отчета.
Если не знаете СКД, то создать отчет на нем будет очень сложно.
Парой фраз тут не обойтись.
17. aalu14 14.07.22 13:55 Сейчас в теме
18. spacecraft 14.07.22 13:58 Сейчас в теме
(17) начните с изучения по книгам и по обучающим видео. Их полно.
И это не шутка.
Там много тонкостей.
2. aalu14 13.07.22 17:39 Сейчас в теме
Добавил макет, как в нужном отчете, но не выводит сам отчет, ошибка:
Прикрепленные файлы:
Оставьте свое сообщение

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