Имя: Пароль:
1C
1С v8
1С 8 3 УТП - при чтении файла Excel на одном компе вс' ок, на другом - возникает ошибка ((
, ,
0 Nysha1210
 
17.12.18
12:38
Добрый день.
Дома написала программу по чтению и обработе Эксель файла. Всё работало норм. После запуска єтой же программі на работе - выдаёт ошибку "Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!
{Обработка.ЗагрузкаОстаткиЦены.Форма.Форма.Форма(6)}: Error calling constructor (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса
".

Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(ИмяФайла);
        Состояние("Обработка файла Microsoft Excel...");
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
В чём может быть проблема? Спасибо
1 MaxS
 
17.12.18
12:39
1С может читать файлы не используя Excel.
2 shuhard
 
17.12.18
12:40
(0) бяда
3 Nysha1210
 
17.12.18
12:42
Как переделать код? Спасибо.
4 tesseract
 
17.12.18
12:55
(3) Тд = Новый ТабличныйДокумент();
Тд.Открыть(ИмяФайла);
5 Nysha1210
 
17.12.18
12:57
Как тогда выглядит строка : Excel.Cells(ТекСтрока, 26).Value?
6 dka80
 
17.12.18
13:00
СокрЛП(ТД.Область(ТекСтрока, 26, ТекСтрока, 26).Текст)
7 Nysha1210
 
17.12.18
13:03
Тд = Новый ТабличныйДокумент();
Тд.Открыть(ИмяФайла);

не работает, не найден метод "Открыть"
8 dka80
 
17.12.18
13:10
Тд.Прочитать(ИмяФайла);
9 Nysha1210
 
17.12.18
13:11
пробовала - тоже ругается (((
10 Nysha1210
 
17.12.18
13:12
Тд = Новый ТабличныйДокумент();
Тд.Прочитать(ИмяФайла);

не работает, не найден метод "Прочитать", тоже самое и с ПрочитатьФайл и ОткрытьФайл ((((
11 dka80
 
17.12.18
13:13
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
12 Chameleon1980
 
17.12.18
13:14
(11) ++
13 dka80
 
17.12.18
13:15
&НаКлиенте
Процедура ПрочитатьФайл(Команда)
    
    Оп = Новый ОписаниеОповещения("НачатьПомещениеФайлаОкончание", ЭтотОбъект);
    Сообщить("Начало чтения: " + ТекущаяДата());
    АдресВременногоХранилища = "";
    НачатьПомещениеФайла(Оп, АдресВременногоХранилища, ПутьКФайлу,Ложь, ЭтаФорма.УникальныйИдентификатор);
    
    
КонецПроцедуры

&НаКлиенте
Процедура НачатьПомещениеФайлаОкончание(Результат, АдресВременногоХранилища, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
    
    
    Если Прав(ПутьКФайлу, 4) = ".xls" Тогда
        Объект.РасширениеФайла = "xls"
    Иначе
        Объект.РасширениеФайла = "xlsx"
    КонецЕсли;
    ПрочитатьФайлНаСервере(АдресВременногоХранилища);
    Сообщить("Окончание чтения: " + ТекущаяДата());

КонецПроцедуры


&НаСервере
Процедура ПрочитатьФайлНаСервере(АдресВременногоХранилища)
    
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Объект.РасширениеФайла);
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    
    ИмяТД = Сред(Элементы.Страницы.ТекущаяСтраница.Имя, 9);
    ТД = ЭтаФорма[ИмяТД];
    Попытка
        ТД.Прочитать(ИмяВременногоФайла);
        УдалитьФайлы(ИмяВременногоФайла);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
КонецПроцедуры
14 dka80
 
17.12.18
13:15
+13 под свою задачу немного подпили
15 Nysha1210
 
17.12.18
13:16
ОК, спс сейчас попробую.
16 dka80
 
17.12.18
13:16
ну и к (0): возможно у тебя эксель не стоит на СЕРВЕРЕ, возможно, эксель стоит, но ниже версии ПРОФ (тогда он COM не поддерживает)
17 Nysha1210
 
17.12.18
13:20
У меня пока на Сервере базы нет, так что делаю разработку у себя на компе, база в файловом варианте. Excel на компе не стоит - пользуемся Libre Office
18 Nysha1210
 
17.12.18
13:21
Что дома стоит - не помню
19 dka80
 
17.12.18
13:22
(17) ха ха ха. Тогда как ты хочешь создать объект эксель, если у тебя нет эксель?
Тогда делай как в (13)
20 Nysha1210
 
17.12.18
13:29
Как-то не сообразила (((