![]() |
|
Подключиться к открытым по OLE Excel | ☑ | ||
---|---|---|---|---|
0
dk
07.12.17
✎
12:05
|
Есть обработка которая подключается по OLE к Excel
Эта обработка зависла - 1с я убил а Excel остался висеть И таких зависших Excel довольно много Есть у кого готовый инструмент чтобы подключиться к зависшим Excel и активизировать их - показать экран Думаю там какая-то ошибка в Excel и очень хотелось бы на нее взглянуть |
|||
1
Ёпрст
гуру
07.12.17
✎
12:13
|
Activate() не подходит, для книжки ?
|
|||
2
Ёпрст
гуру
07.12.17
✎
12:13
|
прям с 1с-ины тем же апликейшеном + visible=1
|
|||
3
dk
07.12.17
✎
12:15
|
как-то писал подобно но щас времени нет восстанавливать
тупо GetComObjet вместо New ComObject было вроде ------------------- (1) все книги созданы через New ComObject - т.е. новый аппликашен каждый раз |
|||
4
Ёпрст
гуру
07.12.17
✎
12:17
|
на вот, первый попашийся код:
Оле=СоздатьОбъект("Excel.Application"); //поиск в открытом приложении Для i=1 По Оле.Workbooks.Count Цикл ТекКнига=Оле.Workbooks(i); Если ТекКнига.Name=Файл Тогда Книга=ТекКнига; Прервать; КонецЕсли; КонецЦикла; |
|||
5
dk
07.12.17
✎
12:44
|
------------- пока так подключаюсь ничего интересного не нашел - тупо открывает Excel без книги |
|||
6
Сияющий в темноте
07.12.17
✎
13:05
|
Насколько я помню, GetObject позволяет подключиться только к одному экземпляру, а остальные в RunObjectTable просто не регистрируются, и подключиться к ним уже просто нельзя, а нужно "заваливать" через KillProcess.
|
|||
7
dk
07.12.17
✎
13:12
|
угу, открывал, открывал
и похоже подключиться к OLE нельзя таким способом - жаль прибил все процессы ( |
|||
8
Сияющий в темноте
07.12.17
✎
13:16
|
(7) Если хочется завершать, то можно при создании объекта ставить Visible=True, тогда приложение Excel будет видно.
Также, можно делать сначала GetObject, чтобы получить предыдущий, и если не получилось, то выполнять CreateObject. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |