Имя: Пароль:
1C
1С v8
Работа с COMОбъект
0 НатГолубева777
 
20.03.20
11:21
Здравствуйте. Подскажите как исправить ошибку, если кто знает.

Выдает ошибку:
{ВнешняяОбработка.КонкурентыExcel.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
    Док=ПолучитьCOMОбъект(Путь+"конкуренты.xls");
по причине:
Ошибка получения объекта COM: -2147221020(0x800401E4): Синтаксическая ошибка


Рабочий код:
Процедура КнопкаВыполнитьНажатие(Элемент)
    Путь= Константы.ПутьДоФайлов.Получить()+"\";
    Док=ПолучитьCOMОбъект(Путь+"конкуренты.xls");
    Для мНом=1 По 2 Цикл
        Контрагент=Док.Sheets(мНом).Cells(1,1).Value;
        Сообщить(Контрагент);
        Номен=Док.Sheets(мНом).Cells(2,2).Value;
        Цена=Док.Sheets(мНом).Cells(2,3).Value;
        счСтроки=3;
        Сообщить(Строка(Номен)+"-"+Строка(Цена));
        Пока СокрЛП(Номен) <> "" Цикл
            Номен=Док.Sheets(мНом).Cells(СчСтроки,2).Value;
            Цена=Док.Sheets(мНом).Cells(СчСтроки,3).Value;
            Сообщить(Строка(Номен)+"-"+Строка(Цена));
            счСтроки=счСтроки+1;
        КонецЦикла;
    КонецЦикла;    
    Док.Application.Quit();
КонецПроцедуры
1 Капитан Джек Воробей
 
20.03.20
11:24
(0)Компоненту регистрировал?
2 НатГолубева777
 
20.03.20
11:26
Не подскажете как регистрировать?
3 Капитан Джек Воробей
 
20.03.20
11:30
4 SSSSS_AAAAA
 
20.03.20
11:34
(0)Для начала:
1. Определить, где же таки исполняется сей код - на сервере или на клиенте?
2. Там, где код исполняется установлен соответствующий софт? И соответствующей разрядности?
5 НатГолубева777
 
20.03.20
11:56
Не подскажете еще ссылку на то как зарегистрировать на клиенте
6 D_E_S_131
 
20.03.20
12:22
С Excel-данными лучше работать через ADODB.
7 arsik
 
гуру
20.03.20
12:25
Зачем. Сейчас 1с уже нормально эксель читает. Рукоблудство с адодб нужно когда ну совсем неподъемный размер исходного файла и нужно ускорить чтение, а использовать сейчас COM для чтения экселя совсем за гранью.
8 Ц_У
 
20.03.20
12:26
Зачем так сложно?

ТабличныйДокумент (SpreadsheetDocument)
Прочитать (Read)
Вариант синтаксиса: Из файла
Синтаксис:
Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Имя файла табличного документа.
<СпособЧтенияЗначений> (необязательный)
Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.
Описание варианта метода:
Чтение табличного документа из файла.

Описание:
Считывает табличный документ из файла.
Позволяет считывать табличный документ из файла табличного документа Microsoft Excel 97 - 2010 ( *.xls и *.xlsx) или электронной таблицы OpenOffice Calc ( *.ods).
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\My Documents\Таблица1.mxl");
Использование в версии:
Основная теорема систематики: Новые системы плодят новые проблемы.