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();
КонецПроцедуры
Но это тоже не работает
Подскажите - что нужно сделать?
|
|