Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

закрытие excel

закрытие excel
Я
   djekting
 
06.11.18 - 11:40
собственно вопрос: сама книга закрывается но не срабатывает закрытие приложения, в чем может быть проблема?

.......
    ОбъектЭксель = Новый COMОбъект("Excel.Application"); 
    ОбъектЭксель.Visible = Истина;
    ОбъектЭксель.WindowState = 2;
    ОбъектЭксель.WindowState = 1;
    ОбъектЭксель.DisplayAlerts = 0;                       
    //ОбъектЭксель.AutomationSecurity = 3;      

    ОбъектЭксель.WorkBooks.Open(ПолноеИмяФайла);        

    ДобавитьОбработчик ОбъектЭксель.WorkbookBeforeClose, ПередЗакрытиемДокументаExcel;
.......
КонецПроцедуры

Процедура ПередЗакрытиемДокументаExcel(Документ, Отмена)
    ДокументИзменен = Истина;
    Попытка
        Если (НЕ Документ.Saved) ИЛИ (ДокументИзменен) Тогда
            ОбъектЭксель = Документ.Application;
        
            Документ.Save();

            УдалитьОбработчик ОбъектЭксель.WorkbookBeforeClose, ПередЗакрытиемДокументаExcel;             
            
            ПолноеИмяФайла = Документ.FullName;
            ИмяФайла = Сред(Документ.Name,40);
            id = Прав(Лев(Документ.Name,37),36);
            
            Документ.Close();
        
            
            Запрос = Новый Запрос;
            Запрос.Текст = 
                "ВЫБРАТЬ
                |    ХранилищеДополнительнойИнформации.Ссылка,
                |    ХранилищеДополнительнойИнформации.ВерсияДанных,
                |    ХранилищеДополнительнойИнформации.ПометкаУдаления,
                |    ХранилищеДополнительнойИнформации.Предопределенный,
                |    ХранилищеДополнительнойИнформации.Наименование,
                |    ХранилищеДополнительнойИнформации.ВидДанных,
                |    ХранилищеДополнительнойИнформации.ИмяФайла,
                |    ХранилищеДополнительнойИнформации.Объект,
                |    ХранилищеДополнительнойИнформации.Хранилище,
                |    ХранилищеДополнительнойИнформации.ТекстФайла,
                |    ХранилищеДополнительнойИнформации.Представление
                |ИЗ
                |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                |ГДЕ
                |    ХранилищеДополнительнойИнформации.Наименование = &Наименование";
            
            Запрос.УстановитьПараметр("Наименование", id);            
            РезультатЗапроса = Запрос.Выполнить();            
            ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                ТекОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
                ТекОбъект.Хранилище = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПолноеИмяФайла), Новый СжатиеДанных);
                ТекОбъект.ИмяФайла = ИмяФайла;
                ТекОбъект.Наименование = id;
                ТекОбъект.Записать();
            КонецЦикла;
            ОбъектЭксель.DisplayAlerts = 1;
            ОбъектЭксель.Quit();
        КонецЕсли;
    Исключение
        Сообщить("" + ОписаниеОшибки());
    КонецПопытки;

КонецПроцедуры
 
 
   Kigo_Kigo
 
1 - 06.11.18 - 11:43
А так ?
ВходExcel.ActiveWorkbook.Close();
ВходExcel.Quit();
   djekting
 
2 - 06.11.18 - 11:47
нет, все равно остается открыто приложение
   Кирпич
 
3 - 06.11.18 - 11:49
может

ОбъектЭксель.Quit();
ОбъектЭксель = 0;
   djekting
 
4 - 06.11.18 - 11:52
(3)не помогло
есть особенность при первом закрытие приложение закрываться стало, но если открыть еще раз документ и закрыть то приложение опять висит.
   djekting
 
5 - 06.11.18 - 11:53
до перезапуска 1с
   Кирпич
 
6 - 06.11.18 - 11:54
(4) ну там весь смысл - ссылки на excel все рубить. нет ссылок - excel закрывается
   VS-1976
 
7 - 06.11.18 - 11:59
(4) ОбъектЭксель.DisplayAlerts = 1;
Зачем включил? Реально может диалог выскочить и пока кнопки не нажмёшь, в невидимом Excel, он не завершится...
   djekting
 
8 - 06.11.18 - 12:50
(7) непомогло
   МимохожийОднако
 
9 - 06.11.18 - 12:53
(0) Вот это зачем?
ОбъектЭксель.Visible = Истина;
   kda26
 
10 - 06.11.18 - 13:01
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ПолноеИмяФайла); 
Excel.Visible = 0;
Excel.ActiveWindow.DisplayWorkbookTabs = 1; 
Excel.ActiveWindow.TabRatio = 0.6;
//Excel.Range("K1").Select(); //Заморозка колонок

//Excel.ActiveWindow.FreezePanes = True;
FullName = Excel.ActiveWorkbook.FullName;            
Excel.DisplayAlerts = false;
Excel.ActiveWorkbook.SaveAs(FullName, 51);// 18 - xls 97-2003; 51 - xlsx 2007-2013

//Excel.Visible = 1;      // если нужно поработать дальше с книгой

Excel.Application.Quit();
Excel = Неопределено;
 
 Рекламное место пустует
   djekting
 
11 - 06.11.18 - 13:44
(10) через SaveAs  получилось

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует