![]() |
![]() |
![]() |
|
Событие Закрытие приложение excel из 1с | ☑ | ||
---|---|---|---|---|
0
smileeg
05.03.12
✎
12:47
|
Может быть кто-нибудь сталкивался с чем-то подобным?
Нужно отловить событие закрытия приложения MS Excel. Нашла только событие ПередЗакрытием книги. Добавляю обработчик: ДобавитьОбработчик Excel.WorkbookBeforeClose, ПередЗакрытиемДокумента; Потом в процедуре выполняю следующий код: Процедура ПередЗакрытиемДокумента(Документ, Отмена) // Удалить обработчик закрытия документа УдалитьОбработчик Excel.WorkbookBeforeClose, ПередЗакрытиемДокумента; Документ.Close(); Excel.Application.Quit();// завершаем процесс Excel Excel = Неопределено; // Удалить временный файл УдалитьФайлы(ИмяФайла); ИмяФайла = Неопределено; КонецПроцедуры И возникает следующая проблема: когда я закрываю приложение, то закрывается книга, удаляется временный файл, очищаются значения переменных, но приложение остаётся открытым. при этом если я закрываю книгу процедура выполняется с закрытием приложения. Помогите, пожалуйста. |
|||
1
Cube
05.03.12
✎
12:57
|
У меня в Word работает так:
&НаКлиенте Процедура ОткрытьМакетДляРедактирования(Команда) ... Попытка MSWord = ПолучитьCOMОбъект(, "Word.Application"); //Если Word уже открыт, то покажем предупреждение - нефиг десять документов редактировать. Предупреждение("Для редактирования макета, закройте другие документы Microsoft Word."); Возврат; Исключение Попытка MSWord = Новый COMОбъект("Word.Application"); //Открываем Word. Исключение Сообщить("Ошибка при открытии макета. Скорее всего на Вашем компьютере не установлен Microsoft Word.", СтатусСообщения.Внимание); Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; КонецПопытки; Документ = MSWord.Documents.Open(КаталогВременныхФайлов() + Объект.ИмяФайлаМакета); MSWord.Visible = Истина; MSWord.Activate(); ДобавитьОбработчик MSWord.DocumentBeforeClose, ПередЗакрытиемДокументаWord; ДобавитьОбработчик MSWord.Quit, ВыходИзWord; КонецПроцедуры //ОткрытьМакетДляРедактирования() &НаКлиенте Процедура ПередЗакрытиемДокументаWord(Документ, Отмена) Если НЕ Документ.Saved Тогда Документ.Save(); Модифицированность = Истина КонецЕсли; КонецПроцедуры //ПередЗакрытиемДокументаWord() |
|||
2
Cube
05.03.12
✎
12:58
|
+(1) Забыл:
&НаКлиенте Процедура ВыходИзWord() ... УдалитьФайлы(КаталогВременныхФайлов() + Объект.ИмяФайлаМакета); КонецПроцедуры //ВыходИзWord() |
|||
3
smileeg
05.03.12
✎
13:08
|
я уже нашла выход из положения) вдруг кому понадобится)
перед закрытием книги excel активизирую само приложение Excel.Activate(); //спасибо за помощь// |
|||
4
smileeg
05.03.12
✎
13:15
|
не... не получилось. эксель закрывает и не убивает процесс и не удаляет временный файл... ЭХЪ(
|
|||
5
Cube
05.03.12
✎
13:20
|
(4) А что Excel.DocumentBeforeClose не работает?
|
|||
6
ЧеловекДуши
05.03.12
✎
13:20
|
Excel.Application.Close();
|
|||
7
ЧеловекДуши
05.03.12
✎
13:21
|
А вообще, странно это все, так то 8-ка неплохо и свои отчетики переводит в ексель.
|
|||
8
Cube
05.03.12
✎
13:21
|
(6) Цитирую "Нужно отловить событие закрытия приложения MS Excel."
|
|||
9
ЧеловекДуши
05.03.12
✎
13:22
|
(8)(0)>>> Нужно отловить событие закрытия приложения MS Excel.
Бред, зачем, что хочет автор от этого получить? Зачем себе придумывать грабли? |
|||
10
Cube
05.03.12
✎
13:22
|
(7) Ну так попробуй в шапке договора наименование организации, наименование контрагента и слова "Заказчик" и "Исполнитель" выдели жирным шрифтом... То-то и оно...
|
|||
11
smileeg
05.03.12
✎
13:25
|
(5) - работает
|
|||
12
ЧеловекДуши
05.03.12
✎
13:25
|
(10)Вы просто не умеете Это готовить ;)
Ексель, он и в 8-ке и в 7-ке Екселем останется. |
|||
13
Cube
05.03.12
✎
13:25
|
(12) Ты не в теме, проходи мимо.
|
|||
14
smileeg
05.03.12
✎
13:26
|
(9) - для того, чтобы при закрытии экселя у меня удалялись временные файлы созданные 1с.
|
|||
15
Cube
05.03.12
✎
13:26
|
(11) Задача решена? :)
|
|||
16
smileeg
05.03.12
✎
13:27
|
(5) только заметила что там Document... ща попробую... а то у меня Workbook? или Document это для Word?
|
|||
17
Cube
05.03.12
✎
13:29
|
(16) Так вот и проверь :)
|
|||
18
smileeg
05.03.12
✎
13:29
|
(6) - у приложения Excel нет метода Close()
|
|||
19
smileeg
05.03.12
✎
13:31
|
(17) - Событие объекта не обнаружено (DocumentBeforeClose)
вотъ так неудачка. |
|||
20
smileeg
05.03.12
✎
13:32
|
всё потому что у excel не документы, а книги
|
|||
21
Cube
05.03.12
✎
13:38
|
А так:
ДобавитьОбработчик Excel.Quit, ВыходИзExcel; Процедура ВыходИзExcel() УдалитьФайлы(ИмяФайла); КонецПроцедуры //ВыходИзExcel() |
|||
22
smileeg
05.03.12
✎
13:42
|
там 1с тоже какую-то ошибку выдавал...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |