![]() |
![]() |
![]() |
|
Закрывается эксель при закрытии обработки | ☑ | ||
---|---|---|---|---|
0
Lunovar
04.03.16
✎
11:32
|
Добрый день, подскажите как решить проблему.
Есть обработка у которой макет Эксель. Идея такая: обработка отрабатывает заполняет эксель и файл эксель остается открытым для изменения или сохранения пользователем. когда я подключаю обработку как внешнюю форму в базу и запускаю из документа. она отрабатывает файл эксель появляется на долю секунды и закрывается. как сделать так чтобы файл эксель не закрывался? Макет = ПолучитьМакет("Макет"); MSExcel = Макет.Получить(); Книга = MSExcel.Application.workbooks(1); Книга.Activate(); ЛистДанных = Книга.sheets(1); ТЗПараметров= Новый ТаблицаЗначений; ТЗПараметров.Колонки.Добавить("ИмяПараметра",новый ОписаниеТипов("Строка")); ТЗПараметров.Колонки.Добавить("ЗначениеПараметра",новый ОписаниеТипов("Строка")); ЗаполнитьОбщие(ТЗПараметров,СсылкаНаОбъект); УстановкаПараметровВДокументе(MSExcel, ТЗПараметров); ТЗДокумента = ЗапросКДаннымДокумента(); ЗаписьДанныхТабличнойЧастиВЭксель(ТЗДокумента, ЛистДанных); MSExcel.Windows(1).Visible = Истина; MSExcel.Application.Visible = Истина; MSExcel.Activate(); З.Ы. если через файл-открыть запустить обработку файл заполняется и остается открытым, но как только я закрываю форму обработки файл Эксель закрывается тоже. |
|||
1
Lunovar
04.03.16
✎
11:34
|
Платформа 8.3.6, конфигурация зуп 2.5
|
|||
2
Lunovar
04.03.16
✎
14:00
|
Получилось. Нужно было сначала сохранить в двоичные данные. конченый код может кому поможет.
Попытка MSExcel = Новый COMОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()); Возврат ОписаниеОшибки(); КонецПопытки; ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xls"); ДвоичныеДанные = ПолучитьМакет("Макет"); ДвоичныеДанные.Записать(ИмяВременногоФайла); Книга = MSExcel.WorkBooks.Open(ИмяВременногоФайла); ЛистДанных = Книга.sheets(1); //лист //ТЗПараметров - те параметры которые будут подставляться в макет вместо <.....> ТЗПараметров= Новый ТаблицаЗначений; ТЗПараметров.Колонки.Добавить("ИмяПараметра",новый ОписаниеТипов("Строка")); ТЗПараметров.Колонки.Добавить("ЗначениеПараметра",новый ОписаниеТипов("Строка")); ЗаполнитьОбщие(ТЗПараметров,СсылкаНаОбъект); УстановкаПараметровВДокументе(MSExcel, ТЗПараметров); //заменяем параметры <...> в макете ТЗДокумента = ЗапросКДаннымДокумента(); //получаем данные из документа ссылки ЗаписьДанныхТабличнойЧастиВЭксель(ТЗДокумента, ЛистДанных); //обход результата таб части документа и записи в эксель MSExcel.Windows(1).Visible = Истина; MSExcel.Application.Visible = Истина; |
|||
3
aleks_default
04.03.16
✎
14:10
|
да уж, код звиздец какой "конченный"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |