Имя: Пароль:
1C
1С v8
не закрывается процесс EXCEL
0 Холодильник
 
30.10.13
09:32
Загружаю данные из файла эксель.
код:

Док = ПолучитьCOMОбъект(ПутьКФайлу);
...//обработка
Док.Application.Quit();

Но в диспетчере остается висеть процесс EXCEL и при повторной загрузке ругается :
1 Холодильник
 
30.10.13
09:32
+Ругается:
{Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
    Док = ПолучитьCOMОбъект(ПутьКФайлу);
по причине:
Ошибка получения объекта COM: The message filter indicated that the application is busy.


Только когда убираешь процесс вручную - ошибка пропадает.
что делать?
2 manyak
 
30.10.13
09:34
а перед тем как запустить обработку, проверял - может старые висяки есть экселя в дисп. процессов?
3 Кай066
 
30.10.13
09:34
запускать батник с такскилом?
http://www.pvsm.ru/images/lyogkii-sokrashatel-ssylok-na-ASP-NET-2.png
4 Rie
 
30.10.13
09:35
(1) Процесс чем-то занят. Не отвечает на стук. Когда его прибьёшь - ПолучитьCOMОбъект создаст новый, белопушистый процесс.
5 George Wheels
 
30.10.13
09:36
(0) А обработка вся проходит? Вообще правильно в таких случаях: Попытка ... Исключение...

И добавь в конце Док = ""
6 Rie
 
30.10.13
09:36
(0) Кто-то этот процесс держит, стало быть. Ссылка на него где-то висит.
7 Voronve
 
30.10.13
09:36
Вряд ли... 100 пудово он о чем то спрашивает юзера...
8 perec1982
 
30.10.13
09:37
По окончании предидущей обработки Закрывай excel и убивай comОбъект
9 Холодильник
 
30.10.13
09:38
хм. Если вообще не закрывать, то процесс не остается в диспетчере.
зачем вообще закрывать приложение
10 manyak
 
30.10.13
09:41
(9) хорошая сказка :)
типа запустил приложение, не закрыл, а его в дисп. нет...
11 Холодильник
 
30.10.13
09:43
(10) ну рельно, так и есть
12 floody
 
30.10.13
09:45
Excel = Новый COMОбъект("Excel.Application");

.......

Excel.ActiveWorkbook.Save();
Excel.ActiveWorkbook.Close();
Excel.Quit();

Делаю так, все закрывается нормально.
13 perec1982
 
30.10.13
09:46
Данная проблема возникает когда из комобъекта формируешь эксэль документ.
При этом  нужно: 1. Сохранить документ после его заполнения 2. Закрыть его. 3. Закрыть ком соединение. 4. Открыть Без использования ком соединения
14 perec1982
 
30.10.13
09:47
(13) Если нужно чтобы документ был открыт по окончании заполнения
15 Infsams654
 
30.10.13
10:00
(12) + Excel = Неопределено;
16 Rie
 
30.10.13
10:00
(0)
Док.Application.DisplayAlerts = Ложь;
Док.Application.Quit()
попробуй.
17 manyak
 
30.10.13
10:04
.visible=true
и смотри что у тебя там происходит