а вот такая штука. есть класс, который всегда запускается на сервере. класс занимается тем, что печатает на принтер некоторые отчеты.
пока класс запускался с клиента, все печаталось.
как только класс определили в batch job, стали печататься пустые страницы вместо отчетов.
почему такое может происходить?
печатает же SalesFormLetter_Invoice, если поставить его в пакетную обработку.
может, кто-то сталкивался, помогите советом. DAX 2009 RTM.
еще один нюанс: если делать тот же трюк с печатью в PDF, то тот же результат. запускаем с клиента - получаем замечательный PDF, ставим в пакетную обработку - PDF создаются, но пустые.
куда и как печатать - управляю через PrintJobSettings. ежели на принтер, то так:
X++:
pjs.setTarget(PrintMedium::Printer);
pjs.deviceName(printerName, ClassRunMode::Server);
а ежели в PDF, то так:
X++:
pjs.format(PrintFormat::PDF);
pjs.setTarget(PrintMedium::File);
pjs.fileName(folderPath + _sales + ".pdf");
при этом pjs тоже живет на сервере, иначе на серверный принтер не напечатает.
в чем же разница, через клиент я его запускаю, или в пакетную обработку ставлю - в обоих случаях класс на сервере отрабатывает.. в DAX 2009 сделали так, что пакетная обработка на сервере работает, если runsImpersonated = true, пытаюсь пользоваться.. что, придется таки по-старинке, batch server поднимать? не хотелось бы сдаваться, SalesFormLetter-то печатает из пакетной обработки..
помогите, господа, советом, где с бубном надо танцевать. спасибо.