|
Разработка команды печати для автоматической компоновки печатной формы | ☑ | ||
|---|---|---|---|---|
|
0
Web00001
29.09.23
✎
14:10
|
Всем привет. Курю разработку печатных форм посредством автоматической компоновки. В случае если данные можно описать посредством компоновки все прекрасно. Данные в СКД. Имя макета в идентификаторе - все работает. Но у меня много полей которые сложно так описать. Всякие там склонения и проч. Нужна небольшая постобработка представлений значений после запроса. В документации для таких случаев предлагают использовать процедуру "ПриПодготовкеДанныхПечати" и в макете использовать тип набора данных "Объект". Но не могу ума приложить как туда передать данные табличной части выводимого объекта. Выражения плана "Ссылка.ИмяТЧ.ИмяРеквизита" игнорируется. Передача таблицы, в значение макета СКД тоже не к чему приводит. Каким образом это должно работать?
|
|||
|
1
shuhard
29.09.23
✎
14:18
|
(0)
НаборДанных - Объект Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ПользовательскиеНастройкиМодифицированы = Ложь; УстановитьОбязательныеНастройки(ПользовательскиеНастройкиМодифицированы); // Подготовим и выведем отчет. КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; НастройкиКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки = КомпоновщикМакета.Выполнить( СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; НаборДанных = СтоимостьМатериаловИРабот(); Функция СтоимостьМатериаловИРабот() ТипПараметра = ТипЗнч(Основание); Запрос = Новый Запрос; МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Если ТипПараметра = Тип("СправочникСсылка.РесурсныеСпецификации") Тогда ДанныеСпецификацииВМенеджерВременныхТаблиц(МенеджерВременныхТаблиц); Иначе ДанныеЗаказаВМенеджерВременныхТаблиц(МенеджерВременныхТаблиц); КонецЕсли; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("Период", Период); Запрос.УстановитьПараметр("Основание", Основание); Запрос.УстановитьПараметр("ВидЦены", ВидЦены); Если ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25() Тогда Запрос.Текст = ТекстЗапросаСтоимостьМатериаловИРабот2_5(); Иначе Запрос.Текст = ТекстЗапросаСтоимостьМатериаловИРабот(); КонецЕсли; Результат = Запрос.Выполнить().Выгрузить(); Возврат Результат; КонецФункции |
|||
|
2
Web00001
29.09.23
✎
14:28
|
(1)Не совсем понятно где здесь печатная форма документа\справочника
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |