Загрузка Excel, отладка на клиенте, запуск на сервере
Писал обработку загрузки excel файла, отлаживал на файловом варианте с установленным excel, при попытке запустить обработку на клиент серверной 1с с компьютера с установленным excel выдает ошибку:
ошибка при вызове конструктора сомобъект 2147467262 0x80004002 интерфейс не поддерживается
при попытке создания сомобъект:
Какие могут быть причины ошибки, искал подобные темы, ответа на свою ситуацию не нашел, подскажите пожалуйста
ошибка при вызове конструктора сомобъект 2147467262 0x80004002 интерфейс не поддерживается
при попытке создания сомобъект:
Попытка
Excel = Новый COMобъект("EXCEL.Application");
Excel.WorkBooks.Open(Объект.ФайлExcel);
Исключение
Сообщить("При открытии файла произошла ошибка! Операция прервана!");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
ПоказатьКакие могут быть причины ошибки, искал подобные темы, ответа на свою ситуацию не нашел, подскажите пожалуйста
По теме из базы знаний
- PowerTools: Инструменты администратора 1С 8.3
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Клиент-серверный режим базы данных 1С8 для тестирования
- [ШАБЛОН] Выгрузка / Загрузка данных из Excel
- Запуск фонового задания с прогрессом во внешней обработке независимо от места вызова на Библиотеке стандартных подсистем
Найденные решения
Спасибо всем большое, решил использовать другой метод загрузки, только он не работает с типом файла *.xls., переделал его в xlsx средствами excel, ниже привожу код:
&НаКлиенте
Процедура ЗагрЕксел(Команда)
Файл = Новый Файл("C:\Техн.xlsx");
Если НЕ Файл.Существует() Тогда
Возврат;
КонецЕсли;
ДвоичныеДанные = Новый ДвоичныеДанные("C:\Техн.xlsx");
EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);
КонецПроцедуры
&НаСервере
Процедура EXCELВТаблицуЗначений(ДвоичныеДанные, Расширение)
ФайлEXCELНаСервере = ПолучитьИмяВременногоФайла(Расширение);
ДвоичныеДанные.Записать(ФайлEXCELНаСервере);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ФайлEXCELНаСервере);
УдалитьФайлы(ФайлEXCELНаСервере);
ОбластьТаблицы = ТабличныйДокумент.Область(1, 1, 1084, 11); //описание метода в синтаксис помощнике
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);
ПостроительЗапроса.Выполнить();
ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
// ТаблицаДанных принимает тип ТаблицаЗначений и его обработка уже следующая задача
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Загрузку на клиенте делал, передать comобъект на сервер нельзя, а мне нужно на основании данных справочники создавать. Потом, у меня данные в таблицу значений заполняются, его на клиенте не создать, чтобы передать на сервер. Каким путем дальше идти пока не знаю
Спасибо всем большое, решил использовать другой метод загрузки, только он не работает с типом файла *.xls., переделал его в xlsx средствами excel, ниже привожу код:
&НаКлиенте
Процедура ЗагрЕксел(Команда)
Файл = Новый Файл("C:\Техн.xlsx");
Если НЕ Файл.Существует() Тогда
Возврат;
КонецЕсли;
ДвоичныеДанные = Новый ДвоичныеДанные("C:\Техн.xlsx");
EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);
КонецПроцедуры
&НаСервере
Процедура EXCELВТаблицуЗначений(ДвоичныеДанные, Расширение)
ФайлEXCELНаСервере = ПолучитьИмяВременногоФайла(Расширение);
ДвоичныеДанные.Записать(ФайлEXCELНаСервере);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ФайлEXCELНаСервере);
УдалитьФайлы(ФайлEXCELНаСервере);
ОбластьТаблицы = ТабличныйДокумент.Область(1, 1, 1084, 11); //описание метода в синтаксис помощнике
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);
ПостроительЗапроса.Выполнить();
ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
// ТаблицаДанных принимает тип ТаблицаЗначений и его обработка уже следующая задача
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот