Имя: Пароль:
1C
 
Открытие файла Excel
0 Ptols
 
27.03.09
11:02
Таб.Записать(Имя+".xls","XLS");
Excel.WorkBooks.Open(Имя+".xls");        
ПросмотрЭксель();
------------------------
- отчет из 1С
- получили excel-файл (он у нас открылся)
- переключились на проводник винды и открыли тот же файл из места, куда мы его сохраняли

Эффект такой: открытый файл пропадает, и больше его открыть не получается. При попытке его закрыть он на мгновение появляется, но тут же закрывается. При этом в памяти excel-объект остается. Поэтому не получается открыть файл (система думает, что файл с таким именем уже открыт). Лечится через диспетчер задач и убивание процесса Excel из памяти.
------------------
Что может быть?
1 Rie
 
27.03.09
11:06
(0) Можно сделать

Excel.Visible = 1;

И очень полезно по окончании работы с файлом

Книга.Close();

и даже

Excel.Quit();
2 Ptols
 
27.03.09
11:13
Это есть

Excel.Visible=истина;
Excel= Неопределено;
3 Rie
 
27.03.09
11:15
(2) Может не хватить.
Если какая-то переменная хранит ссылку на книгу, лист, Range или ещё что-то Excel'евское - Excel будет висеть, пока будет существовать ссылка.
4 Kerk
 
27.03.09
11:15
(2) Прикол с неопределено не срабатывает, проверено вчера, когда по памяти воставналивал читалку из экселя...
5 Rie
 
27.03.09
11:17
+(3) "мигнёт и погаснет", как описано в (0) - значит, сказано было

Excel.Visible = False;

Или скрыта была конкретно эта книга.
6 Ptols
 
27.03.09
11:19
У нас из 1С открывается Excel и файл в нем. Все ок. Но если этот же файл выбрать и открыть вручную, то вместо активации уже открытого, происходит фигня какая та.
7 Ptols
 
27.03.09
11:21
Если сделать Excel.Quit(), то Excel закрывается. А надо на экране оставить его.
8 hhhh
 
27.03.09
11:21
(7) если наоборот, сначала открыть вручную, а потом обратиться, работает нормально.
9 Rie
 
27.03.09
11:22
(6) Excel при обработке из 1С стал невидимый. Вот и висит, как описано в (0), в диспетчере задач. И держит файл.

После ПросмотрExcel - кто книгу закрывает? И как именно?
Просто Excel = Неопределено - не закроет Excel совсем. Особенно если пользователь ткнул в открытый файл.
10 Rie
 
27.03.09
11:23
(7) Чтобы оставит Excel на экране - надо

Excel.Visible = True;

Я этого в (0) не увидел. Оно есть? Где? Как именно?
11 Туц
 
27.03.09
11:27
Вообще Excel.Quit() делать не нужно, а то менеджер с кучей открытых книг придет жаловаться. Ну и как вариант альт табом пройдись по окнам. Должно быть есть окошко окрытия только на чтение.
Excel.Visible = True; по умолчанию True так что если не было Excel.Visible = 0;, то и Excel.Visible = 1; делать не надо.
12 Ptols
 
27.03.09
11:32
Цель.
из 1С
1. Сформировать отчет 1С;
2. Сохранить отчет, как Excel файл;
3. Открыть файл в Excele, (Файл на экране)
-------------
Закрываем 1С
Вот если теперь, открытый файл, выбрать в каталоге еще раз (2-й) то возникает описанная ситуация.
13 Ptols
 
27.03.09
11:37
Никак. дальше работа происходит с Excel. Книгу Уже из него закрывать будут
14 Rie
 
27.03.09
11:40
Вопрос может показаться странным, но...
А в какую папку записывается отчёт в Excel?
Excel неодобрительно относится к ситуации, когда одновременно открываются одноименные файлы из разных папок.
15 Ptols
 
27.03.09
11:46
Visible есть (2)
Каталог пользователь выбирает сам.
-----------
16 Ptols
 
27.03.09
11:56
Спасибо всем. Я так понял этот глюк не победить.
17 Rie
 
27.03.09
11:58
(15) А _открывает_ он в (0) из рабочего каталога, а не из того, который пользователь выбрал.
18 Ptols
 
27.03.09
12:14
не, в имени заложен полный путь
19 Rie
 
27.03.09
12:26
(16) Вообще-то загадочно.
Я примерно так же делал (с учётом обсуждения) - и никаких проблем никогда не возникало.
20 Ptols
 
27.03.09
12:36
А если закрыть Excel, а потом просто щелкнуть по Ecxel, даже не один раз. Файл открывается один раз и не пропадает.
Ошибка? Это не ошибка, это системная функция.