Евгений Темиргалеев писал(а):
Угу. Даже excel.Quit; excel := NIL; Kernel.Collect....
Если сделать окно ёкзеля видимым, то Quit видимость убирает, а процесс остается. Может в ББ что-то его держит. Вот только что?
Проблема точно не в BB. Очень давно сталкивался с подобным и под .NET. Правда там эти процессы сами отмирали через некоторое (довольно большое) время. Решилось обертыванием работы с Excel в класс, экземпляр которого создавался локально в теле процедуры:
        
Код:
//код вне класса ExcelWork
bool result = false;
ExcelWork ew = new ExcelWork(this);
result = ew.GenExcel(gr, ods, GenPaged);
ew = null;
GC.Collect();
return result;
Кроме этого в этом классе был метод:
Код:
//метод класса ExcelWork
private void NAR(Object o)
{
        try{
              System.Runtime.InteropServices.Marshal.ReleaseComObject(o);
        }
        finally{
                o = null;
        }
}
С помощью которого "добивались" объекты Excel:
Код:
//метод класса ExcelWork
Excel.Application excelApp = null;
Excel.Workbook wbk = null;
try
{
        excelApp = new Excel.Application();
        excelApp.UserControl = false;
        excelApp.DisplayAlerts = false;
        wbk = excelApp.Workbooks.Add(Missing.Value);
...............
        wbk.Close(false,Missing.Value,Missing.Value);
        NAR(wbk);
        excelApp.Quit();
        NAR(excelApp);
        GC.Collect();
        GC.WaitForPendingFinalizers();
}
catch(Exception e)
{
...............
Возможно обертывание в класс или NAR были лишними, точно уже не помню. Таже обратите внимание на UserControl и DisplayAlerts.