![]() |
#10 |
Участник
|
Аксапта 2009.
Есть следующий код: X++: public void run() { SalesReport_Invoice4Paym_RU launcher; PrintJobSettings printJobSettings; FileName fileName; ; super(); invoice4PaymJour = CustInvoice4PaymJour_RU::find('0100000'); fileName = strfmt("%1%2.pdf", 'C:\\temp\\', invoice4PaymJour.Invoice4PaymId); printJobSettings = new PrintJobSettings(); printJobSettings.format(PrintFormat::PDF); printJobSettings.setTarget(PrintMedium::File); printJobSettings.allPages(true); printJobSettings.fileName(fileName); launcher = new SalesReport_Invoice4Paym_RU(); launcher.setParameters(PrintCopyOriginal::OriginalPrint, invoice4PaymJour); launcher.prompt(); launcher.setPrintJobSettings(printJobSettings.packPrintJobSettings()); launcher.run(); } Но PDF файл создается на локальной машине. Если запускать в пакетной обработке - падает сервер. Картинка в отчете есть, но я ее скрываю. Помогите, кто сталкивался. ------------------------------- Зашел с другой стороны: Сделал тупой отчет с одной строчкой, класс наследник RunBaseReport (серверный) переопределил функцию: X++: void makePrintJobSettings() { FileName fileName; ; super(); fileName = 'C:\\temp\\test123.pdf'; printJobSettings = new PrintJobSettings(); printJobSettings.format(PrintFormat::PDF); printJobSettings.setTarget(PrintMedium::File); printJobSettings.allPages(true); printJobSettings.fileName(fileName); } При запуске в батче выдает ошибку: Ошибка времени выполнения: PrintJobSettings Объект не инициализирован. (S)\Classes\PrintJobSettings\packPrintJobSettings (S)\Classes\RunBaseReport\run - line 16 (S)\Classes\BatchRun\runJobStatic - line 63 По всему выходит что PrintJobSettings - чисто клиентский объект. Как его сделать серверным? В этой ветке у всех получилось. Что я делаю не так? |
|