Нашел старый код, там отчет создавался посредством класса COM (без участия Аксаптовских классов):
X++:
try
{
excelApplication = new COM("excel.application");
excelApplication.SheetsInNewWorkBook(1);
excelWorkBooks = excelApplication.Workbooks();
excelWorkBook = excelWorkBooks.add();
excelWorkSheet = excelWorkBook.ActiveSheet();
cells = excelWorksheet.Cells();
pageSetup = excelWorkSheet.PageSetup();
pageSetup.Orientation(2);
//Header -->
this.CreateHeader();
//Header <--
//FillBody -->
this.FillDocument();
//FillBody <--
excelApplication.visible(true);
}
catch(exception::Error)
{
if(excelApplication)
{
excelApplication.displayAlerts(false);
excelWorkBooks.close();
excelApplication.quit();
}
}
Таким образом, может быть, в качестве решения, стоит привязаться в конце построения отчета к непосредственным COM-переменным и уже через них закрыть процесс?
Хотя по идее excelApplication.quit() отрабатывается в методе класса COMOfficeDocument_RU.quitApplication - класс, от которого наследуется COMExcelDocument_RU.
А вы, кстати, пробовали вызывать метод
quitApplication()?