Неизвестный герой Columbus с ником
TRUD, конечно, проделал большую работу. Однако нельзя же было вообще не интересоваться как там и что сделано? Этот функционал, очевидно, был сделан под Ax2.5 и слегка "подмазан" для Ax3.0. Соответственно, содержит ряд ошибок и неточностей. Одно лишь ограничение по длине символьного значения в 100 символов в свое время стоило дополнительных нервов
Впрочем, винить в этом исполнителя не стоит. Очевидно, у него был дефицит времени. Но если уж портировать это решение в Ax2009 стоило бы "подчистить шероховатости"

По крайней мере, про типы Int64 и DateTime стоило вспомнить
Во вложении проект для Ax2009 где экспорт в Excel решен через ADO RecordSet. В принципе, системные формы и классы изменены точно так же, что и в решении от
Bega. Ну, разве что, в методе класса \Classes\ClassFactory\createViewer() стоит ссылка уже на мои классы
Проблемы, которые так и не удалось решить
1. В базовом классе
reportOutputUser на основе которого и формируется весь процесс нет обработки полей типа GUID. Как следствие, если в отчете есть подобное поле, то экспорт в Excel вылетит с исключением. Ничего в Excel импортировано не будет.
Перехватить эту ошибку, чтобы вывести хотя бы все остальное - невозможно. Это ошибка "ядра".
2. При экспорте в Excel опять же, где-то в недрах базового класса
reportOutputUser происходит "потеря" настроек принтера. Очищается экземпляр класса
PrintJobSetting.
Это-то ладно, поскольку к моменту выполнения
reportOutputUser сам отчет уже сформирован и остается просто отобразить результат. Однако если вывод в Excel сделать не из формы предварительного просмотра, а напрямую по кнопке Ok, то происходит запись "пустого"
PrintJobSetting в кеш отчета. Соответственно, следующий запуск отчета выводит полную ерунду, пока не восстановишь настройки принтера.
Где именно происходит перезапись кеша отчета - непонятно. По крайней мере на момент завершения \Forms\SysPrintForm\Methods\closeOk() все настройки на месте.
В Ax2.5 такой проблемы не было, поэтому можно было отправлять в Excel напрямую из отчета, а не через окно предварительного просмотра. Но в Ax2009 как обойти эту проблему я не нашел.