Чтение DBF файлов и Memo полей при помощи 1С

Для чтения файлов DBF из 1С можно использовать объект XBase, однако до того момента как понадобится чтение полей Memo. В этом случае XBase использовать бесполезно, требуется другой подход. Для примера возьмем файл «C:\Base\MyFile.dbf» Решение проблемы на клиенте приведено ниже:

ИмяФайла = «MyFile»;
ИмяПапки = «C:\Base»;
// создаем объект доступа к БД
oConn = Новый COMОбъект(«ADODB.Connection»);
// задаем строку-соедние с указанием расположения БД
oConn.ConnectionString = «provider=vfpoledb.1;Data Source =»
+ИмяПапки + «;Mode=ReadWrite»;
// SQL запрос делается прямо по имени файла
Query = «Select * From «+ИмяФайла+«.dbf»;
// создаем объект доступа к набору записей
record = New COMОбъект(«ADODB.Recordset»);
Попытка
     record.Open(Query, oConn); // выполняем запрос к таблице
Исключение
     Сообщить(«Ошибка при обращении к таблице: «+ОписаниеОшибки());
     Возврат Неопределено;
КонецПопытки;
// выводим типы колонок таблицы
// тип это число, например:

// 
11 —Булево, 129 — Строка, 131 — Число, 201 — Мемо
Для каждого Field из record.Fields Цикл
     Сообщить(«Поле «Field.Name + » имеет тип « + Строка(Field.Type));
КонецЦикла;
// выводим строки выборки
Пока Не record.EOF() Цикл
     Сообщить(«Контрагент « + Строка(record.Fields(
«Customer»).Value) + » имеет ИНН «Строка(record.Fields(«Inn«).Value) );
     record.MoveNext();
КонецЦикла;

Для работы этого кода необходимо установить соответствующий драйвер Fox Pro и можно скачать программу для просмотра файлов DBF. Без установки драйвера никакими возможностями 1C мемо поля не прочитать.

Скачать драйвер: Fox pro
Скачать программу просмотра DBF файлов: Редактор DBF

Чтение DBF файлов и Memo полей при помощи 1С: 4 комментария

    1. Это можно делать на небольших объемах, на тысячах строк необходим программный доступ.

  1. Вы можете сохранить MEMO поля в текстовый файл из текущей копии, отредактировать и снова загрузить в текущую базу.

    1. Да это один из способов, все таки использование только движка базы данных более предпочительно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *