powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как переместить данные из dbf-файлов (1C) в БД Access?
10 сообщений из 10, страница 1 из 1
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32206829
Фдуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если делать по отдельным записям, то получается очень-очень медленно.
Попробовал организовать запрос select * from 1sblob in "" [dBase IV; DATABASE = path] но мне выдаётся что нет индекса.
Не подскажите ли как можно решить эту задачу?
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32206886
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADO
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Акцесс = СоздатьОбъект( "ADODB.CONNECTION" );
Попытка
     СтрокаПодключения= "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\base.mdb;Uid=Admin;Pwd=" ;
     Акцесс.Open(СтрокаПодключения);
Исключение
     Сообщить( "Все плохо:" +ОписаниеОшибки());
     Возврат;
КонецПопытки;
Команда = СоздатьОбъект( "ADODB.Command" );
Команда.ActiveConnection=Акцесс;
ТекстСелект =  "SELECT * FROM tblCustoms" ;
НаборЗаписей = СоздатьОбъект( "ADODB.RecordSet" );
Команда.CommandText=ТекстСелект;
Попытка
     НаборЗаписей=Команда.Execute;
Исключение
     Сообщить( "Обломись:" +ОписаниеОшибки());
КонецПопытки;
Попытка
     НаборЗаписей.MoveFirst();
Исключение //нет записей в рекордсете
     НаборЗаписей.Close();
     Возврат;
КонецПопытки;
Пока НаборЗаписей.EOF()= 0  Цикл
     ИНН = НаборЗаписей.Fields( "INN" ).Value;
     //ну и т.д.
     НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();


DAO:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Процедура 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();  // закрытие базы данных
КонецПроцедуры
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32206897
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А меню "Импорт" не подходит? Все вроде очень быстро работает.
Если нужно не ручками, то есть
Docmd.TransferDatabase.
С прилинкованными таблицами тоже достаточно быстро работает.
Можно попробовать еще запросом на создание таблицы, а источником взять прилинкованную таблицу. А уже после этого работать с полученной таблицей, опять же можно после импорта/создания индексы навесить.
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32206913
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предполагаю, что не понял вопрос.
Вероятно необходимо внешней программой (не Access) переместить записи из dbf в mdb.
Или находясь в самой 1С перекинуть данные в Access?
Если скорость играет значение и есть Access установленный,
то по собственному опыту процедура импорта работает быстрее прочих.
Возможно открытие Access c запуском процедуры импорта/обработки и закрытие его после. У нас так запускается по расписанию скриптиком.
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32207018
Фдуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Michael Vasilev: Нужно именно запуская приложение импортировать данные из 1С в Access. И нужно чтобы считывалось не всё, а только изменения. Правда последнее сложно сделать, так как 1С не ведёт логов того что и где изменилось
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32207046
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так как 1С не ведёт логов того что и где изменилось
ведёт логи, вплоть до юзера кто эти изменения сделал, тока как с этим работать я уже не помню...
надо бы на sql.ru форум 1С-кий сделать, думаю запостился бы...
на мой взгляд самый сильный форум по 1с здесь ,
там же можно найти мой вопрос годичной давности про индекс+ответ с исходником... вообщем там задай там спецов по 1с много...
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32207051
Фдуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Артист: На сколько я понял ты привёл пример для 1C, а требуется выгрузить с помощью внешнего приложения. А оно ничего не знает о том что такое КаталогПользователя
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32207075
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32207087
Фдуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спб :)
...
Рейтинг: 0 / 0
Как переместить данные из dbf-файлов (1C) в БД Access?
    #32207108
Фдуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Импорт таблицы не помагает. Русские буквы получаются неправильными. Поменял ключ OEM на ANSI, но ничего не изменилось
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как переместить данные из dbf-файлов (1C) в БД Access?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]