Имя: Пароль:
1C
 
Ошибка при открытии файла Ексель
0 Eeelena
 
22.09.14
01:17
Делаю обработку, которые считывает данные из файла Ексель, сначала все работало нормально, данные считывались и заполнялись в таблицу значений, потом почему то возникла ошибка при открытии файла Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Access Database Engine): Неопознанная ошибка 1с 8.3. Подскажите, пожалуйста, в чем может быть проблема?

Код функции:
Функция ПолучитьТЗИзEXCEL(ПутьКФайлу, ИмяНомерСтраницы, Заголовок = Истина, ПерваяСтрока = 0) Экспорт
ИмяНомерСтраницы=1;
ПерваяСтрока = 0;
      ТЗ  = Новый ТаблицаЗначений;

    #Если Клиент Тогда
        Состояние("Подключение к файлу Excel...");
    #КонецЕсли
    //
    Попытка
        Эксель = Новый COMОбъект("Excel.Application");
        Версия = СтрПолучитьСтроку(СтрЗаменить(Эксель.Version, ".", Символы.ПС), 1);
    Исключение
        //СообщениеТекста("Ошибка подключения к "+ПутьКФайлу+" : "+ОписаниеОшибки(),,СтатусСообщения.Важное);
        Возврат ТЗ;
    КонецПопытки;
    //
    Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
    // Выбираем данные запросом из таблицы файла по имени страницы
    Если ТипЗнч(ИмяНомерСтраницы) = Тип("Число")  Тогда
        Лист        = Книга.WorkSheets(ИмяНомерСтраницы);
        ИмяСтраницы = Лист.Name;
    Иначе
        ИмяСтраницы = ИмяНомерСтраницы;
    КонецЕсли;
    //
    // Определим диапазон данных Excel
    ПослЯчейка = СтрЗаменить(Книга.WorkSheets(ИмяСтраницы).Cells(1,1).SpecialCells(11).Address, "$", "");
    //
    Эксель.Application.Quit();
    //
    Эксель  = неопределено;
    Книга   = неопределено;
    Лист    = неопределено;

    // Подлючаемся

    Connection          = Новый COMОбъект("ADODB.Connection");
    Если Версия = "12" ИЛИ Версия = "14" Тогда
        СтрокаПодключения   ="Provider =Microsoft.ACE.OLEDB.12.0;Data Source="+ПутьКФайлу+";Extended Properties=""Excel 12.0 Xml;HDR="+?(Заголовок,"YES","NO")+";IMEX=1""";
    Иначе
        СтрокаПодключения   ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ПутьКФайлу+";Extended Properties=""Excel 8.0;HDR="+?(Заголовок,"YES","NO")+";IMEX=1""";
    КонецЕсли;

    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        //ПолучитьCOMОбъект(ИмяФайла, "Excel.Application");
        Сообщить(ОписаниеОшибки());
        Возврат ТЗ;
    КонецПопытки;

    Command=Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection=Connection;
    Command.CommandText = ?(ПерваяСтрока = 0, "Select * From [" + ИмяСтраницы + "$]", "Select * From [" + ИмяСтраницы + "$A" + ПерваяСтрока + ":" + ПослЯчейка + "]");

    Попытка
        Записи=Command.Execute();
    Исключение
        //Сообщить("Ошибка при выполнении запроса!"+ОписаниеОшибки(), ,СтатусСообщения.ОченьВажное);
        Возврат ТЗ;
    КонецПопытки;

    Для НомерПоля = 0 По Записи.Fields.Count-1 Цикл
        СтрКолонка = Строка(Записи.Fields.Item(НомерПоля).Name);
        СтрКолонка = СтрЗаменить(СтрКолонка,"№","Num");
        НедопустимыеСимволы = " ~`!@""#№$;%^:&?*()-+=/\|.,";
        Для i = 1 По СтрДлина(НедопустимыеСимволы) Цикл
            СтрКолонка = СтрЗаменить(СтрКолонка, Mid(НедопустимыеСимволы, i, 1), "_")
        КонецЦикла;
        ИмяКолонки = СокрЛП(СтрКолонка);
        ТЗ.Колонки.Добавить(ИмяКолонки, , СтрКолонка);
    КонецЦикла;

    Пока НЕ Записи.EOF() Цикл
        НоваяСтрока = ТЗ.Добавить();
        Для НомерПоля = 0 По Записи.Fields.Count-1 Цикл
            НоваяСтрока[НомерПоля] = Записи.Fields(Записи.Fields.Item(НомерПоля).Name).Value;
        КонецЦикла;
        Записи.MoveNext();
    КонецЦикла;

    Command = Неопределено;
    Записи  = Неопределено;

    Возврат ТЗ;

КонецФункции
1 Cube
 
22.09.14
04:50
А де фотка? :)
2 sFAQer
 
22.09.14
06:38
(0) а в пути к файлу лежит?
3 Wobland
 
22.09.14
06:41
как насчёт открывания в попытке и сообщения описания ошибки в исключении? после (1), конечно
4 tixis
 
22.09.14
07:22
(0) файл уже открыт
5 Мимохожий Однако
 
22.09.14
07:25
(4)+ посмотри в панели задач запущенные экземпляры Excel и удали их. Потом проверь заново.
6 Eeelena
 
22.09.14
07:32
(5) смотрю в диспетчере задач, процессы ексель никакие не висят. (2) в пути лежит D:\home\tyum\Desktop\Пример из галактики.xlsx
7 Wobland
 
22.09.14
07:33
(6) и на сервере он там есть?
8 Eeelena
 
22.09.14
07:38
(7) ну да
9 Eeelena
 
22.09.14
07:40
(7) просто очень странно сначала нормально открывалось, а потом почему то перестало, а в чем причина понять не могу(
10 Wobland
 
22.09.14
07:40
(8) ну давай описание ошибки. после (1), конечно
11 Eeelena
 
22.09.14
07:44
(10) Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Access Database Engine): Неопознанная ошибка
12 sFAQer
 
22.09.14
08:20
(0) Excel x64?
13 sFAQer
 
22.09.14
08:22
(0) C:\Windows\SysWOW64\config\systemprofile\Desktop
14 sFAQer
 
22.09.14
08:23
(13) C:\Windows\System32\config\systemprofile\Desktop
Вот по этим путям проверь наличие этих папок, если нету, создай пустые