Добрый день, есть отчет, который открывается по кнопке (Декорация1), его необходимо поместить в вывод остальных отчетов, которые выводятся с помощью кода ниже, как можно поступить, научите, пожалуйста? Заранее спасибо.
Скрин 1 - вывод отчетов
Скрин 2 - примерно как хотелось бы видеть тот отчет, который вызывается по нажатию.
Скрин 1 - вывод отчетов
Скрин 2 - примерно как хотелось бы видеть тот отчет, который вызывается по нажатию.
&НаКлиенте
Процедура Декорация1Нажатие(Элемент)
Отч = ПолучитьФорму("Отчет.Отчет.Форма.Отчет");
Отч.Открыть();
Отч.Отчет();
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьМакеты()
НовыйМакет=ТабличноеПолеАнализ.Добавить();
НовыйМакет.Название="Скорость";
НовыйМакет.Описание="Скорость";
НовыйМакет.НачалоПериода = НачалоГода(ТекущаяДата());
НовыйМакет.КонецПериода = КонецГода(ТекущаяДата());
НовыйМакет=ТабличноеПолеАнализ.Добавить();
НовыйМакет.Название="Скорость2";
НовыйМакет.Описание="Скорость 2";
НовыйМакет.НачалоПериода = НачалоГода(ТекущаяДата());
НовыйМакет.КонецПериода = КонецГода(ТекущаяДата());
КонецПроцедуры
&НаСервере
Функция ПолучитьМакет(НазваниеМакета)
//Получаем схему из макета
Об = РеквизитФормыВЗначение("Объект");
СхемаКомпоновкиДанных = Об.ПолучитьМакет(НазваниеМакета);
ЗначениеВРеквизитФормы(Об,"Объект");
Возврат СхемаКомпоновкиДанных;
КонецФункции
&НаКлиенте
Процедура ТабличноеПолеАнализВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "ТабличноеПолеАнализОписание" Тогда
СтандартнаяОбработка=ложь;
ТекСтрока = ТабличноеПолеАнализ.Получить(ВыбраннаяСтрока);
ВывестиОтчет(ТекСтрока.Название,ТекСтрока.НачалоПериода,ТекСтрока.КонецПериода);
Элементы.ГруппаОтчеты.Текущаястраница = Элементы.Отчеты;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВывестиОтчет(НазваниеМакета,НачалоПериода,КонецПериода)
СхемаКомпоновкиДанных = ПолучитьМакет(НазваниеМакета);
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Настройки = КомпоновщикНастроек.Настройки;
ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
Если ПараметрПериод <> Неопределено Тогда
ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
КонецЕсли;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Результат = МакетАнализ;
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Результат.ОтображатьЗаголовки = Ложь;
Результат.ОтображатьСетку = Ложь;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- "Процессы 3.0: CRM, Бизнес-процессы, Управление по целям". Универсальная система управления процессами и показателями для любой конфигурации 1С
- "Война и мир" или DevOps в большом Enterprise
- Загрузка чеков в 1С из ФНС в документы БП, УНФ, ERP, КА и УТ
- Как контролировать качество внешних обработок, отчетов, правил обмена, расширений 1С и поставить это на поток
- Разветвленная разработка на хранилищах и файлах поставки
Найденные решения
(15) это смотрится так:
"Видел по телевизору, что в магазинах америки продается СуперУмбаЮмба.
Как мне ее купить в соседнем Магните?"
Ответ: никак.
Код в данном случае никак не поможет. Совсем другой принцип формирования отчета.
Если не знаете СКД, то создать отчет на нем будет очень сложно.
Парой фраз тут не обойтись.
"Видел по телевизору, что в магазинах америки продается СуперУмбаЮмба.
Как мне ее купить в соседнем Магните?"
Ответ: никак.
Код в данном случае никак не поможет. Совсем другой принцип формирования отчета.
Если не знаете СКД, то создать отчет на нем будет очень сложно.
Парой фраз тут не обойтись.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)В прошлой теме Вы мне помогали вывести отчет в виде диаграммы. Выше листинг, как это происходит. Также, в этот же элемент формы необходимо вывести отчет, который вызывается (Процедура Декорация1Нажатие(Элемент)). Как он формируется ниже, макет в скрине:
Я не понимаю, куда мне это вставлять, я разобрался, как добавлять отчеты, которые в макете и настраиваются, а как поступать в данном случае, я не знаю.
Может быть существует простое решение, ведь по кнопке я вызываю всего лишь:
Как разделить логику на получение макета, а потом привязать этот новый макет к получаемой форме...
Нигде не могу найти хотя бы что-то подобное.
Процедура Отчет() Экспорт
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ТабДок.АвтоМасштаб = Истина;
Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Запрос "
Запрос.Параметры.Вставить("Сотрудник",Справочники.Пользователи.НайтиПоКоду("ЦФП"));
РезультатЗапроса = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
//ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ОбластьЗаголовок.Параметры.Дата = ТекущаяДата();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыбИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Если ВыбИтог.Следующий() Тогда
ОбластьПодвалТаблицы.Параметры.Заполнить(ВыбИтог);
ВыборкаДетальныеЗаписи = ВыбИтог.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
КонецЕсли;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
//ТабДок.Вывести(ОбластьПодвал);
КонецПроцедуры
ПоказатьЯ не понимаю, куда мне это вставлять, я разобрался, как добавлять отчеты, которые в макете и настраиваются, а как поступать в данном случае, я не знаю.
Может быть существует простое решение, ведь по кнопке я вызываю всего лишь:
ПолучитьФорму("Отчет.Отчет.Форма.Отчет")
Как разделить логику на получение макета, а потом привязать этот новый макет к получаемой форме...
Нигде не могу найти хотя бы что-то подобное.
Прикрепленные файлы:
(4) т.е. хотите внедрить вывод формы отчета в другую форму?
Так это не работает.
Нужно выводить результат в виде табличного документа в основной форме. Получать или заполнять сам ТабДок можно и в другой форме, если там будет клиентская экспортная функция, которая и вернет нужный ТабДок.
Или все перенести в основную форму.
Так это не работает.
Нужно выводить результат в виде табличного документа в основной форме. Получать или заполнять сам ТабДок можно и в другой форме, если там будет клиентская экспортная функция, которая и вернет нужный ТабДок.
Или все перенести в основную форму.
(5) Создал макет с таким же запросом, как в том отчете, получилось прогнать через тот же обработчик скд. Но выводит только 1 строку вместо 8, не подскажете, как еще вывести Итоги (как на втором скрине) в скд, я так понимаю, нельзя сделать:
Скрин как получилось и как надо
ИТОГИ
СУММА(Договор),
СУММА(Отказ),
СУММА(ПолученПриказ),
СУММА(Отмена),
СУММА(Возвращено),
СУММА(ОбщаяСумма),
СУММА(СуммаПлатежей)
ПО
ОБЩИЕ
ПоказатьСкрин как получилось и как надо
Прикрепленные файлы:
(11)
В первом сообщении листинг отчета*.
Мне этот отчет необходимо вывести на форму в поле, как у меня на скриншотах. Я вывожу через ПолучитьМакет, ВывестиОтчет (там настройки и остальное касательно компоновщика данных).
И вот вопрос, как мне создать макет такого же отчета (листинг отчета*), чтобы передать его в ПолучитьМакет и ВывестиОтчет, если там код оформления (Подвал и т.д.), в макете задал только такой же запрос (и не ясно, как в скд задать ИТОГИ). Выводится только 1 строка, а нужно 8, скрины выше.
(10) что значит в отдельном макете? Макет это шаблон чего-то.
Сам отчет нужно повторить полностью (макет, код и возможно реквизиты формы) или изменить для получения его результата извне.
Или с нуля создать свой.
Сам отчет нужно повторить полностью (макет, код и возможно реквизиты формы) или изменить для получения его результата извне.
Или с нуля создать свой.
В первом сообщении листинг отчета*.
Мне этот отчет необходимо вывести на форму в поле, как у меня на скриншотах. Я вывожу через ПолучитьМакет, ВывестиОтчет (там настройки и остальное касательно компоновщика данных).
И вот вопрос, как мне создать макет такого же отчета (листинг отчета*), чтобы передать его в ПолучитьМакет и ВывестиОтчет, если там код оформления (Подвал и т.д.), в макете задал только такой же запрос (и не ясно, как в скд задать ИТОГИ). Выводится только 1 строка, а нужно 8, скрины выше.
(13) В работающем отчете после запроса идет
Как мне реализовать это же только в скд?
Запрос.Параметры.Вставить("Сотрудник",Справочники.Пользователи.НайтиПоКоду("ЦФП судебное "));
РезультатЗапроса = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
//ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ОбластьЗаголовок.Параметры.Дата = ТекущаяДата();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыбИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Если ВыбИтог.Следующий() Тогда
ОбластьПодвалТаблицы.Параметры.Заполнить(ВыбИтог);
ВыборкаДетальныеЗаписи = ВыбИтог.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
КонецЕсли;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ПоказатьКак мне реализовать это же только в скд?
(15) это смотрится так:
"Видел по телевизору, что в магазинах америки продается СуперУмбаЮмба.
Как мне ее купить в соседнем Магните?"
Ответ: никак.
Код в данном случае никак не поможет. Совсем другой принцип формирования отчета.
Если не знаете СКД, то создать отчет на нем будет очень сложно.
Парой фраз тут не обойтись.
"Видел по телевизору, что в магазинах америки продается СуперУмбаЮмба.
Как мне ее купить в соседнем Магните?"
Ответ: никак.
Код в данном случае никак не поможет. Совсем другой принцип формирования отчета.
Если не знаете СКД, то создать отчет на нем будет очень сложно.
Парой фраз тут не обойтись.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот