|
Макет документа в отчете на СКД | ☑ | ||
---|---|---|---|---|
0
Amig0_0
04.11.20
✎
16:31
|
Всем привет!
Вопрос от части теоретический) Нужно на СКД сделать отчет. Отчет этот выбирает проведенные документы определенного типа и по каждому из них на отдельной странице печатает ПФ. Более того ПФ эта есть у самого документа и из этого же документа прекрасно печатается. Т.е. В документе ПутевойЛист (ПЛ) есть ПФ «Протокол». Отчет на СКД должен напечатать столько протоколов, сколько в заданном периоде есть проведенных документов ПЛ. Я сделал простейший запрос на СКД , отключил использование стандартного оформления и полез в модуль -> ПриКомпоновкеРезультата(… и всевозможными способами пытаюсь скормить компановщику макет «Протокол» из документа ПЛ. Но что-то не получается , хоть ты тресни. В интернете находил варианты с подстановкой другого МакетаКомпановкиДанных, но это не то что нужно в моём случае… Думаю уже, что скд не подходит для решения этой задачи, но прежде хотел спросить у матерых знатоков) Если кто сталкивался с подобными реализациями, подскажите плиз, можно ли заставить СКД вывести данные в макет документа. Заранее спасибо за потраченное время! |
|||
1
fisher
04.11.20
✎
16:41
|
Непосредственно СКД - нельзя заставить.
Но можно из отчета СКД получать из данных расшифровки список документов и просто в цикле по нему выводить печатные формы документов. Мне это видится как обычный отчет СКД по документам с кнопкой в нем "Печать ПФ". |
|||
2
Amig0_0
04.11.20
✎
16:49
|
(1) а есть возможность "Показать()" сформированный табличный документ после ПриКомпоновкеРезультата(... в Модуле объекта отчета на СКД ? Или все же правильнее создать форму для отчета и из нее по кнопке "Сформировать" выводить ПФ?
|
|||
3
Amig0_0
04.11.20
✎
16:55
|
(1) =)) Ну да , как - то замороченно всё звучит. В общем по задаче, отчет должен быть создан на СКД. Вот и думаю , как правильнее и максимально безболезненно это сделать
|
|||
4
Dzenn
гуру
04.11.20
✎
16:59
|
Результатом процедуры ПриКомпоновкеРезультата является банальный ТабличныйДокумент. Полученный сложными механизмами компоновки, но самый обычный, самый простой ТабличныйДокумент.
Если СКД нужно только для получения массива документов на печать, и обязательным условием является именно использование СКД, то я бы сделал так: ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки = КомпоновщикМакета.Выполнить( СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать( МакетКомпоновки, Неопределено, ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаДокументов); ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина); ДокументРезультат.Очистить(); // шаманство с ДокументРезультат на основании ТаблицаДокументов КонецПроцедуры То есть, смысл в том, что выводим результат работы СКД не в табличный документ сразу, а в коллекцию значений, а потом уже, на основании коллекции значений, формируем нужный нам ДокументРезультат типа ТабличныйДокумент |
|||
5
fisher
04.11.20
✎
16:59
|
(2) Показать() можно, но не из модуля объекта. Сервер это не оценит. Некогда ему табличные документы разглядывать. Компоновку можно вообще программно делать хоть в обработке, а полученный в результате табличный документ - это обычный табличный документ. Что угодно с ним делай - даже показывай.
(3) > по задаче, отчет должен быть создан на СКД Чьей задаче? :) |
|||
6
Dzenn
гуру
04.11.20
✎
17:00
|
(4) забыл инициализировать ТаблицаДокументов
|
|||
7
fisher
04.11.20
✎
17:04
|
> Отчет этот выбирает проведенные документы определенного типа и по каждому из них на отдельной странице печатает ПФ
Так как вывод на отдельных страницах, то как ни крути, а напрашивается штатный вывод ПФ, потому что остальные варианты на фоне него выглядят мазохизмом. Другое дело что список документов для печати ПФ можно получать с помощью СКД. |
|||
8
Amig0_0
04.11.20
✎
17:06
|
(6) (7) спасибо большое, попробую покрутить)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |