Загрузка Excel, отладка на клиенте, запуск на сервере

1. Дон Кихот 04.12.19 09:48 Сейчас в теме
Писал обработку загрузки excel файла, отлаживал на файловом варианте с установленным excel, при попытке запустить обработку на клиент серверной 1с с компьютера с установленным excel выдает ошибку:

ошибка при вызове конструктора сомобъект 2147467262 0x80004002 интерфейс не поддерживается

при попытке создания сомобъект:

Попытка
		Excel = Новый COMобъект("EXCEL.Application");
		Excel.WorkBooks.Open(Объект.ФайлExcel);
	Исключение
		Сообщить("При открытии файла произошла ошибка! Операция прервана!");
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
Показать

Какие могут быть причины ошибки, искал подобные темы, ответа на свою ситуацию не нашел, подскажите пожалуйста
По теме из базы знаний
Найденные решения
10. Дон Кихот 05.12.19 11:04 Сейчас в теме
Спасибо всем большое, решил использовать другой метод загрузки, только он не работает с типом файла *.xls., переделал его в xlsx средствами excel, ниже привожу код:

&НаКлиенте
Процедура ЗагрЕксел(Команда)
	Файл = Новый Файл("C:\Техн.xlsx");
	Если НЕ Файл.Существует() Тогда
		Возврат;
	КонецЕсли;
	ДвоичныеДанные = Новый ДвоичныеДанные("C:\Техн.xlsx");
	EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);
	
КонецПроцедуры

&НаСервере
Процедура EXCELВТаблицуЗначений(ДвоичныеДанные, Расширение)
	ФайлEXCELНаСервере = ПолучитьИмяВременногоФайла(Расширение);
	ДвоичныеДанные.Записать(ФайлEXCELНаСервере);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.Прочитать(ФайлEXCELНаСервере);
	УдалитьФайлы(ФайлEXCELНаСервере);
	ОбластьТаблицы = ТабличныйДокумент.Область(1, 1, 1084, 11); //описание метода в синтаксис помощнике
	
	ПостроительЗапроса = Новый ПостроительЗапроса;
	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);  
	ПостроительЗапроса.Выполнить();
	ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
	// ТаблицаДанных принимает тип ТаблицаЗначений и его обработка уже следующая задача

	КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. blondinka86 1 04.12.19 10:08 Сейчас в теме
(1) была такая ошибка когда платформа стояла 64 битная, а эксель 32 и доступ у пользователя под которым 1с запускается на сервере был ограничен.
8. Дон Кихот 04.12.19 10:53 Сейчас в теме
(3)А что сделать, дать пользователю права администратора?
9. blondinka86 1 05.12.19 10:19 Сейчас в теме
(8) Да пока права пользователю не дали все, под которым сервер 1с ставили, не работало,там права на запуск приложений нужны и на запись в папку. Разрядность должна быть одинаковая, без этого тоже не работало.
2. YannikAlx 43 04.12.19 09:53 Сейчас в теме
На сервере не установлен EXCEL скорее всего...
делайте загрузку файла на клиенте , если на вашем компе стоит EXCEL
&НаКлиенте
6. Дон Кихот 04.12.19 10:29 Сейчас в теме
(2)Загрузку на клиенте делал, передать comобъект на сервер нельзя, а мне нужно на основании данных справочники создавать. Потом, у меня данные в таблицу значений заполняются, его на клиенте не создать, чтобы передать на сервер. Каким путем дальше идти пока не знаю
4. platonov.e 158 04.12.19 10:12 Сейчас в теме
делайте загрузку в табдок, и не парьтесь(только если 1 страница, если больше тогда парьтенсь)))
5. Дон Кихот 04.12.19 10:20 Сейчас в теме
(4)Ссылку с описанием как это сделать напиши пожалуйста
7. platonov.e 158 04.12.19 10:47 Сейчас в теме
(5) а уже даже видимо по листам умеют читать
https://infostart.ru/public/714988/
10. Дон Кихот 05.12.19 11:04 Сейчас в теме
Спасибо всем большое, решил использовать другой метод загрузки, только он не работает с типом файла *.xls., переделал его в xlsx средствами excel, ниже привожу код:

&НаКлиенте
Процедура ЗагрЕксел(Команда)
	Файл = Новый Файл("C:\Техн.xlsx");
	Если НЕ Файл.Существует() Тогда
		Возврат;
	КонецЕсли;
	ДвоичныеДанные = Новый ДвоичныеДанные("C:\Техн.xlsx");
	EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);
	
КонецПроцедуры

&НаСервере
Процедура EXCELВТаблицуЗначений(ДвоичныеДанные, Расширение)
	ФайлEXCELНаСервере = ПолучитьИмяВременногоФайла(Расширение);
	ДвоичныеДанные.Записать(ФайлEXCELНаСервере);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.Прочитать(ФайлEXCELНаСервере);
	УдалитьФайлы(ФайлEXCELНаСервере);
	ОбластьТаблицы = ТабличныйДокумент.Область(1, 1, 1084, 11); //описание метода в синтаксис помощнике
	
	ПостроительЗапроса = Новый ПостроительЗапроса;
	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);  
	ПостроительЗапроса.Выполнить();
	ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
	// ТаблицаДанных принимает тип ТаблицаЗначений и его обработка уже следующая задача

	КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот