|
Работа с эксель |
☑ |
0
Alekzander Wolf
25.11.16
✎
06:38
|
Допустим есть такой код:
Попытка
Книга = Эксель.WorkBooks.Open(ИмяФайла);
Исключение
Возврат;
КонецПопытки;
Проблема в том что после выполнения строки Эксель.WorkBooks.Open(ИмяФайла) (когда ошибка! очень редко она есть и вообще не понятно от чего она зависит), то появляется ошибка windiows "отправлять отчет не отправлять", потом открывается пустой excel файл, а потом уже, когда я все это закрою падает в исключение.
Как сделать так, чтобы все сразу падало в исключение без всяких посторонних ошибок и открытых окон. Можно ли как-то до открытия книги понять откроется она нормально или есть ошибка.
|
|
1
Peltzer
25.11.16
✎
07:42
|
По всей видимости, либо в COM-объекте что-то критически ломается, либо в Windows. Обратите внимание на текст ошибки windows и попытайтесь устранить причину.
|
|
2
shuhard_серый
25.11.16
✎
07:44
|
(0)[Как сделать]
использовать ADODB
|
|
3
Alekzander Wolf
25.11.16
✎
09:08
|
(2) подробнее можно
|
|
4
dka80
25.11.16
✎
09:37
|
В конце закрываешь открытую книгу и убиваешь переменную "Книга"? Когда возникает ошибка несколько процессов Excel.exe в памяти случайно не висит?
|
|
5
Звездец
25.11.16
✎
09:45
|
(3) на infostarte огромная статья есть про это и не только. Там еще описаны все возможные способы загрузки
|
|
6
Alekzander Wolf
25.11.16
✎
09:47
|
(4) если сделать так
Попытка
Книга = Эксель.WorkBooks.Open(ИмяФайла);
Исключение
Эксель.WorkBooks.Close(); // Тут будет ошибка
Возврат;
КонецПопытки;
И исключение отработает только после того как все закроешь. до выполнения строки Книга = Эксель.WorkBooks.Open(ИмяФайла); естественно все закрыто.
|
|
7
Масянька
25.11.16
✎
09:53
|
(6) У меня Word в клюшках так работает6
ИначеЕсли (РасширениеФайла = "doc") Тогда
// открываем файл
Попытка
мWord = СоздатьОбъект("Word.Application");
мДок = мWord.Documents.Open(ИмяФайла);
// активируем Word
мWord.Visible = 1;
мWord.Application.WindowState = 2;
мWord.Application.WindowState = 1;
Исключение
мWord.Quit();
Предупреждение(ОписаниеОшибки());
КонецПопытки;
Не валится.
|
|
8
Мимохожий Однако
25.11.16
✎
10:03
|
Прежде чем открывать файл в Экселе, полезно проверять существование этого файла, а также наличия на рабочем месте самого экселя.
|
|
9
Alekzander Wolf
25.11.16
✎
10:05
|
(8) все есть, все работает. Как написал выше эта ошибка относительно редко появляется в 3-5% случаях (что конечно достаточно чтобы обратить на это внимание).
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший