8.х ОБМЕН Загрузка в 1С из access

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем nbIpKuH_BaH9I, 8 апр 2015.

  1. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Всем привет. Мне необходимо из файла *.accdb загрузить данные в 1С.

    Код:
    Процедура ЗагрузкаИзAccess() Экспорт
    
        //СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ФайлДляЗагрузки + "; Extended Properties=""Excel 8.0;HDR=NO;""";
        СтрокаПодключения  = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ФайлДляЗагрузки + ";""";
        Connection = Новый COMОбъект("ADODB.Connection");
        Попытка
            Connection.Open(СтрокаПодключения);
        Исключение
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;
        Command = Новый COMОбъект("ADODB.Command");
       
        Command.ActiveConnection = Connection;
        Command.CommandText = "S_elect * FROM Table1";
        Command.CommandType = 1;
        RecordSet = Новый COMОбъект("ADODB.RecordSet");
        RecordSet = Command.Execute();
        стр ="";
        Пока RecordSet.EOF() = 0 Цикл
            для н=0 по  Recordset.Fields.Count -1 цикл
                стр = стр + " " + Recordset.Fields(н).Value;
            КонецЦикла;
            Сообщить(стр);
            стр ="";
            RecordSet.MoveNext(); 
        КонецЦикла;
        RecordSet.Close();
        Connection.Close();
    
    КонецПроцедуры
    
    Код подглядел здес http://infostart.ru/public/69115/.
    Вылезает ошибка. Не пойму в чем затык. Помогите люди добрые.
    Пишет это
    Если просто в access открыть, то все нормально.
  2. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    я к mbd подключалась - все ок было, щас поищу как
    --- Объединение сообщений, 8 апр 2015 ---
    Код:
    ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + СокрЛП(ПутьКБазе) + ";Mode=Read";
       
        Соединение    = Новый COMОбъект("ADODB.Connection");
        Соединение.ConnectionTimeOut = 600;
    
    --- Объединение сообщений, 8 апр 2015 ---
    проверила на accdb - реально не пашет...
    Последнее редактирование: 8 апр 2015
    nbIpKuH_BaH9I нравится это.
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    вот так работает
    Код:
    ConnectString = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=D:\Database31.accdb;Jet OLEDB:Engine Type=5";
    
    nbIpKuH_BaH9I нравится это.
  4. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Ошибка Ян.
    Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
  5. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    фиг знает, я ничего не ставила дополнительно, просто запустила этот код
    --- Объединение сообщений, 8 апр 2015 ---
    ну как вариант можно попробовать пересохранить файл в формате 2003 офиса, тогда будет mdb? ну или ручками переименовать и попробовать
    --- Объединение сообщений, 8 апр 2015 ---
    Костя, глянь вот тут forum.mista.ru/topic.php?id=612852
    --- Объединение сообщений, 8 апр 2015 ---
    и вот тут systemadmins.ru/sql/269-problema-s-driver-msaccess-odbc.html
    Последнее редактирование: 8 апр 2015
    nbIpKuH_BaH9I нравится это.
  6. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Не помогает ничего :(
    --- Объединение сообщений, 8 апр 2015 ---
    Короче надо установить эту хрень
    http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734
    Код:
        СтрокаПодключения="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ФайлДляЗагрузки + ";Persist Security Info=False;";
        Connection = Новый COMОбъект("ADODB.Connection");
        Попытка
            Connection.Open(СтрокаПодключения);
        Исключение
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;
        Command = Новый COMОбъект("ADODB.Command");
       
        Command.ActiveConnection = Connection;
        Command.CommandText = "Select * FROM PRICELIST";
        Command.CommandType = 1;
        RecordSet = Новый COMОбъект("ADODB.RecordSet");
        RecordSet = Command.Execute();
        стр ="";
        Пока RecordSet.EOF() = 0 Цикл
            для н=0 по  Recordset.Fields.Count -1 цикл
                стр = стр + " " + Recordset.Fields(н).Value;
            КонецЦикла;
            Сообщить(стр);
            стр ="";
            RecordSet.MoveNext();
        КонецЦикла;
        RecordSet.Close();
        Connection.Close();
    
    Все работает. Спасибо Ян.
    Последнее редактирование: 8 апр 2015

Поделиться этой страницей