|
Управляемые формы. Как закрыть EXCEL? | ☑ | ||
---|---|---|---|---|
0
Невский Александр
18.03.12
✎
11:34
|
В обработке есть процедура на клиенте, в ней выполняется следующая функция
Функция ВернутьСтруктуруДанныхEXCEL() xlLastCell = 11; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(Объект.ФайлЗагрузки); ExcelЛист = Excel.Sheets(1); ТабличныйДокумент1 = ExcelЛист; Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат ложь; КонецПопытки; ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell); RowCount = ActiveCell.Row; ColumnCount = ActiveCell.Column; АдресДанныхExcel = ПоместитьВоВременноеХранилище(ExcelЛист, ЭтаФорма.УникальныйИдентификатор); СтруктураПараметровExcel = Новый Структура; СтруктураПараметровExcel.Вставить("АдресЛистаEXCEL", АдресДанныхExcel); СтруктураПараметровExcel.Вставить("КоличествоСтрокExcel", RowCount); СтруктураПараметровExcel.Вставить("КоличествоКолонокExcel", ColumnCount); Возврат СтруктураПараметровExcel; КонецФункции То есть я создаю EXCEL, в хранилище помещаю - первый его лист, и передаю на клиент структуру - адрес из хранилища, количество строк и количество столбцов в Excel Далее у меня частями обрабатываются с клиента записи с этого листа РезультатЗаписи = ОбработатьПорциюНаСервереЗагрузкаДанных(?(Счетчик = 1, Объект.ПерваяСтрокаДанныхТабличногоДокумента + 1, РазмерШага * (Счетчик - 1) + 1), Объект.КоличествоЗаписейВExcel + 1, КоличествоОшибок, СтруктураПараметров, СтруктураДанныхEXCEL); Если СтруктураПараметров["ПрерываниеЦикла"] Тогда Прервать; КонецЕсли; Состояние("ЗагрузкаДанных", (РазмерШага * Счетчик) / КоличествоЭлементов * 100); ОбработкаПрерыванияПользователя(); ОбновитьОтображениеДанных(); КонецЦикла; Это вроде как все работает Но вопрос в следующем - как мне потом закрыть приложение EXCEL? Пытался 2 способами - 1) в начале модуля в переменных объявить такую переменную для сервера, и потом закрыть на сервере, но почему-то данную переменную на сервере программа не видит 2) передать эту же структуру на сервер, получить лист - и закрыть приложение, которым он открыт, то есть вот так &НаСервере Процедура ЗакрытьEXCEL(СтруктураДанныхEXCEL) ПолучитьИзВременногоХранилища(СтруктураДанныхEXCEL.АдресЛистаEXCEL).Application.WorkBooks.Close(); КонецПроцедуры Но это тоже не работает Подскажите - что нужно сделать? |
|||
1
Невский Александр
18.03.12
✎
11:35
|
"В обработке есть процедура на клиенте, из нее выполняется следующая функция на сервере, на клиент передается структура"
так правильнее |
|||
2
zak555
18.03.12
✎
11:35
|
тебе надо в экселе сохранить ?
|
|||
3
skunk
18.03.12
✎
11:39
|
потому как сервер екселя на клиенте ...
|
|||
4
ll13
18.03.12
✎
11:43
|
ADO
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |