|   |   | 
| 
 | Событие Закрытие приложение 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с тоже какую-то ошибку выдавал...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |