__Класс RunBaseReport__ Класс RunBaseReport является наследником класса RunBaseBatch и служит для формирования отчетов в Axapta. В версии 3.0 Axapta был введен новый класс runbaseReportStd. С таким наследством запуск выполнения отчетов возможен и при пакетной обработке. Начать ознакомление можно с примера Tutorial_RunbaseReport в стандартной поставке. Но лучше с моей точки зрения посмотреть на SalesReport_DailyEntries. В реализации этого класса заложен необходимый функционал. Рассмотрим его Метод public identifiername lastValueElementName() { return reportStr(SalesDailyEntries); } Выполняет запуск необходимого отчета. Отчет определен функцией reportStr(). Расширенный тип identifiername подойдет для большинства отчетов. Метод client server public static ClassDescription description() { return "@SYS77491"; } Стандартно описывает вывод названия заголовка отчета. Метод static void main(Args args) { SalesReport_DailyEntries salesReport_DailyEntries; ; salesReport_DailyEntries = new salesReport_DailyEntries(); if (salesReport_DailyEntries.prompt()) { salesReport_DailyEntries.run(); } } Так же стандартно формирует запуск отчета из AOT или menu item. Если целью является ограничение вызова отчета. То его лучше реализовать в этом методе Используя условие, как я уже показывал в Run Base http://erpkb.com/Axapta/Klass/RunBase?v=n2v Также хорошим примером реализации вызова и формирования отчета через класс является SalesReport_Heading, который формирует SalesHeading отчет. В нем присутствует метод public boolean getFromDialog() {; formLetters = fieldFormLetters.value(); totals = fieldTotals.value(); return super(); } Который присваивает переменным класса значения с диалога. Так же присутствуют методы ( причем очень стандартно оформленные) pack() и unpack() для пакетной обработки класса. Кто уже изрядно полазил в Axapta, знает, что SalesReport_Heading вызывается из [[РасчетыСКлиентами]]\Отчеты\Проводки\Заказ\Заказ У этого класса есть близнец PurchReport_Heading, отвечающий за отчет по поставщикам. Все методы подробно, описанные в Run Base с успехом можно применять и в наследниках RunBaseReport.