Имя: Пароль:
1C
1С v8
Остается процесс после закрытия файла Excel
0 sidalexsandr
 
19.10.12
16:06
Ситуация такая. Если файл Excel был открыт пользователем, а потом запустили
обработку, то Эксель.ActiveWorkBook.SaveAs(ФайлИзДиалога); не срабатывает.
Вопрос: как проверить, что файл не открыт пользователем?
Вот код работы с файлом Excel.



//Подключиться к Excel
   Попытка
       Эксель = Новый COMОбъект("Excel.Application");
   Исключение
       Сообщить(ОписаниеОшибки() + "Exсel не загрузился почему-то");
       Возврат;
   КонецПопытки;
   
   //Открыть файл
   Книга = Эксель.WorkBooks.Open(ФайлИзДиалога);
   
   //Выбрать лист. Можно по имени или по порядковому номеру
   Лист = Книга.WorkSheets("File");
   Лист.Unprotect() ;
//********
// Здесь изменяю файл Excel
////

/Обязательно закрыть соединение, иначе процесс Excel остается в памяти
   Попытка          
       Эксель.ActiveWorkBook.SaveAs(ФайлИзДиалога);        
   Исключение          
       Предупреждение("Неудачная попытка сохранения файла = Экселя. Перезагрузите "
       +"компьютер (или закройте Excel и завершите все процессы Excel с помощью диспечера задач.");          
   КонецПопытки;
1 sidalexsandr
 
19.10.12
16:07
Так же в случае, когда файл был открыт пользователем. После закрытия руками файла остается процесс Excel в диспечере задач.
2 Cmyk32
 
19.10.12
16:08
Эксель.Quit();    
Не?
3 Vadim_37
 
19.10.12
16:09
Сам написал "Обязательно закрыть соединение, иначе процесс Excel остается в памяти" - сам ответил. Где close и quit?
Программист всегда исправляет последнюю ошибку.