|
закрытие excel | ☑ | ||
---|---|---|---|---|
0
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(); КонецЕсли; Исключение Сообщить("" + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры |
|||
1
Kigo_Kigo
06.11.18
✎
11:43
|
А так ?
ВходExcel.ActiveWorkbook.Close(); ВходExcel.Quit(); |
|||
2
djekting
06.11.18
✎
11:47
|
нет, все равно остается открыто приложение
|
|||
3
Кирпич
06.11.18
✎
11:49
|
может
ОбъектЭксель.Quit(); ОбъектЭксель = 0; |
|||
4
djekting
06.11.18
✎
11:52
|
(3)не помогло
есть особенность при первом закрытие приложение закрываться стало, но если открыть еще раз документ и закрыть то приложение опять висит. |
|||
5
djekting
06.11.18
✎
11:53
|
до перезапуска 1с
|
|||
6
Кирпич
06.11.18
✎
11:54
|
(4) ну там весь смысл - ссылки на excel все рубить. нет ссылок - excel закрывается
|
|||
7
VS-1976
06.11.18
✎
11:59
|
(4) ОбъектЭксель.DisplayAlerts = 1;
Зачем включил? Реально может диалог выскочить и пока кнопки не нажмёшь, в невидимом Excel, он не завершится... |
|||
8
djekting
06.11.18
✎
12:50
|
(7) непомогло
|
|||
9
Мимохожий Однако
06.11.18
✎
12:53
|
(0) Вот это зачем?
ОбъектЭксель.Visible = Истина; |
|||
10
kda26
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 = Неопределено; |
|||
11
djekting
06.11.18
✎
13:44
|
(10) через SaveAs получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |