helpf.pro
Регистрация
 +5 
Распечатать

Как загрузить данные из Access в 1С ?

Загружаем данные из Access в 1С
Код 1C v 8.х
 Файл = "C:\files\demo.mdb" ;
   //СтрокаПодключения = "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();   



Код 1C v 7.x
 Акцесс = СоздатьОбъект("ADODB.CONNECTION");
Попытка
     СтрокаПодключения="Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mybase.mdb;Uid=Admin;Pwd=";
     Акцесс.Open(СтрокаПодключения);
Исключение
     Сообщить("Все плохо:"+ОписаниеОшибки());
     Возврат;
КонецПопытки;
Команда = СоздатьОбъект("ADODB.Command");
Команда.ActiveConnection=Акцесс;
ТекстСелект = "S_elect * FROM tblCustoms";
НаборЗаписей = СоздатьОбъект("ADODB.RecordSet");
Команда.CommandText=ТекстСелект;
Попытка
     НаборЗаписей=Команда.Execute;
Исключение
     Сообщить("Обломись:"+ОписаниеОшибки());
КонецПопытки;
Попытка
     НаборЗаписей.MoveFirst();
Исключение //нет записей в рекордсете
     НаборЗаписей.Close();
     Возврат;
КонецПопытки;
Пока НаборЗаписей.EOF()=0 Цикл
     ИНН = НаборЗаписей.Fields("INN").Value;
     //ну и т.д.
     НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();

// Для тех, у кого в базе Акцесс создана рабочая группа (есть файлик mdw), строка подключения будет такая: 
СтрокаПодключения="Driver= Microsoft Access Driver (*.mdb)};systemDB=C:\wg.mdw;Dbq=C:\mybase.mdb;Uid=Admin;Pwd=";


Работа с ACCESS из 1С через DAO
Код 1C v 7.x
 Процедура Выполнить() 
//фасВладелец = СтрЗаменить(фасВладелец," ","_"); 
   Спр = СоздатьОбъект("Справочник.ТоварыВПрайсе"); 
   Спр.ИспользоватьВладельца(ФасВладелец); 
   dbe = СоздатьОбъект("dao.DBEngine.36"); 
   wksp = dbe.Workspaces(0); 
   db = 0; 
   Если ФС.СуществуетФайл(КаталогИБ()+"Pric_list.mdb")=0 Тогда               // 
       db = wksp.CreateDataBase(КаталогИБ()+"Pric_list.mdb",";LANGID=0x0419;Cp=1251;Country=0");             //   
       db.Execute("Create table [" + Строка(фасВладелец) + "]                                                                                             
       |(Rec_ind integer, 
       |Код text,                                                                                                           
       |Артикул text, 
       |Цена integer, 
       |Товар text, 
       |Единица text, 
       |Val text);" 
       ); 
       db.Execute("Create index Rec_ind on ["+Строка(фасВладелец)+"] (Rec_ind);"); 
   Иначе 
       db= wksp.OpenDataBase(КаталогИБ()+"Pric_list.mdb"); 
       Попытка 
           rs = db.OpenRecordset(Строка(фасВладелец)); 
       Исключение 
           Сообщить("Создается новая таблица"); 
       КонецПопытки; 
       Если ПустоеЗначение(rs)= 1 Тогда 
           db.Execute("Create table [" + Строка(фасВладелец) + "]                                                                                             
           |(Rec_ind integer, 
           |Код text, 
           |Артикул text, 
           |Цена integer, 
           |Товар text, 
           |Единица text, 
           |Val text);" 
           ); 
           db.Execute("Create index Rec_ind on ["+Строка(фасВладелец)+"] (Rec_ind);"); 
       КонецЕсли;     
       db.Execute("Delete * From ["+Строка(фасВладелец)+"];");                                                         
   КонецЕсли;   
   rs = db.OpenRecordset(Строка(фасВладелец)); 
   Y = 1; 
   Спр.ВыбратьЭлементы(); 
   Пока Спр.ПолучитьЭлемент() = 1 Цикл 
       лсЕдиницы = ""; 
       Если Спр.асТовар.апТип=Перечисление.ТипТовара.Услуга Тогда 
           лсЕдиницы = ""; 
       ИначеЕсли Спр.асТовар.апТип=Перечисление.ТипТовара.Весовой Тогда 
           лсЕдиницы = "г"; 
       ИначеЕсли Спр.асТовар.апТип=Перечисление.ТипТовара.Штучный Тогда 
           лсЕдиницы = "шт."; 
       КонецЕсли; 
       Если Спр.ЭтоГруппа() = 0 Тогда 
           rs.AddNew(); 
           rs.Rec_ind = Y; 
           rs.Код= Спр.асТовар.ПолныйКод(); 
           rs.Артикул =  Спр.асТовар.сАртикул; 
           rs.Цена = Спр.чЦена; 
           rs.Товар=Спр.асТовар.сПолнНаименование; 
           rs.Единица =  лсЕдиницы; 
           rs.Val = Спр.асВалюта.Код; 
           rs.Update(); 
           Y=Y+1; 
       КонецЕсли; 
   КонецЦикла; 
   db.Close();   
   Сообщить("Выгрузка завершена"); 
КонецПроцедуры


Код 1C v 7.x
 
Процедура ACCESS()
     dbe=CreateObject("DAO.DBEngine.36");
     wksp=dbe.Workspaces(0);
     db=0;
     // в ковычках имя фаила с расширением MDB
     Если ФС.СуществуетФайл(КаталогПользователя()+"sr.mdb")=0 Тогда
          // создание файла базы данных с русским порядком сортировки
          db=wksp.CreateDataBase(КаталогПользователя()+"mars_sr.mdb",";LANGID=0x0419;CP=1251;COUNTRY=0");
          // DDL - запрос на создание таблицы
          // описание языка DDL (подмножество SQL) смотрите в хелпе по MS Access
          // не пытайтесь делать это с другими форматами - DDL через DAO поддерживается только для MDB
          //Создадим еще таблицу
          db.Execute("CREATE TABLE   BANKS
          |(REC_IND INTEGER,
          |BANKCODE INTEGER,
          |BANKNAME  TEXT  ,
          |ModifiedFlg BIT,
          |ChangeSeqFlg BIT);"
          );
          // индекс на нужные поля
          db.Execute("CREATE INDEX REC_IND ON BANKS (REC_IND);");
     Иначе
          // просто открываем базу данных в разделенном режиме
          db=wksp.OpenDataBase(КаталогПользователя()+"sr.mdb");
          // и очищаем имеющиеся данные
          db.Execute("DELETE * FROM BANKS;");
    КонецЕсли;
    // rs-это как раз сама таблица, куда мы будем добавлять записи
    rs=db.OpenRecordset("BANKS");
    // добавление записи
    rs.AddNew();
    // присвоение значений полям
    rs.REC_IND            =     "1";
    rs.BANKCODE       =     "34";
    rs.BANKNAME       =    "Инвест";
    rs.ModifiedFlg        =     "1";
    // запомним запись
    rs.Update();
    // и так далее ...
    db.Close();  // закрытие базы данных
КонецПроцедуры
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 71719
 +5 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C медленно работает по сети с базой на SQL Server 23
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1Cv8.1CD - Файл данных достиг максимального размера! 9
1С выдает предупреждение " Файл данных достиг максимального размера" . Подскажите из - за чего это и как можно решить ? Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 2
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!