Имя: Пароль:
1C
1С v8
Ошибка загрузки из Excel
0 КтоКакБог
 
21.08.14
12:43
Есть простой код загрузки данных через ado

    АДОСоединение = Новый COMОбъект("ADODB.Connection");
    АДОСоединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайла)+";Extended Properties=""Excel 8.0;HDR="+НаличиеЗаголовкаВФайле+";""";
    Попытка
        АДОСоединение.Open();
    Исключение
        Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное);
        Возврат Неопределено;
    КонецПопытки;
    
    АДОКаталог = Новый COMОбъект("ADOX.Catalog");
    АДОКаталог.ActiveConnection = АДОСоединение;
        
    //разбор структуры
    ВыходнаяТаблицаДанных = Новый ТаблицаЗначений;
    НоваяКолонка = ВыходнаяТаблицаДанных.Колонки;
    Для Каждого ИндетификатораКолонки Из СтруктураКолонок Цикл
        НоваяКолонка.Добавить(ИндетификатораКолонки.Представление);
    КонецЦикла;    
    
    АДОЗапись                  = Новый COMОбъект("ADODB.Recordset");
    АДОЗапись.ActiveConnection = АДОСоединение;
    АДОЗапись.CursorType       = 0;

    Для сч=1 По АДОКаталог.Tables.Count-1 Цикл
        АДОЗапись.Open("Select * from ["+АДОКаталог.Tables(сч).Name+"]"); //выборка с указанного листа
        
        
        АДОЗапись.MoveFirst();
        ИндексЗаписи = 0;
        ТекПроцент   = 0;
        Пока АДОЗапись.EOF() = 0 Цикл
            Если (ИндексЗаписи >= НачСтрока) Тогда
                НоваяСтрока = ВыходнаяТаблицаДанных.Добавить();
                Для Каждого ИндетификатораКолонки Из СтруктураКолонок Цикл
                    iCount         = ?(ИндетификатораКолонки.Значение>0,ИндетификатораКолонки.Значение-1,ИндетификатораКолонки.Значение);
                    ЗначениеЗаписи = АДОЗапись.Fields(iCount).Value;
                    НоваяСтрока[ИндетификатораКолонки.Представление] = ЗначениеЗаписи;
                КонецЦикла;
            КонецЕсли;
            АДОЗапись.MoveNext();
            ИндексЗаписи = ИндексЗаписи + 1;
        КонецЦикла;
АДОЗапись.Close();
    КонецЦикла;    
    АДОСоединение.Close();

При загрузке получаю ошибку
Произошла исключительная ситуация (Microsoft JET Database Engine): Объект ''Trade COL$'_' не найден ядром базы данных Microsoft Jet.  Проверьте существование объекта и правильность имени и пути.
1 КтоКакБог
 
21.08.14
12:54
Может это быть из-за длинного имени листа?
2 zva
 
21.08.14
12:58
Возможно. Попробуйте его укоротить до 8 символов.
Независимо от того, куда вы едете — это в гору и против ветра!