Как загрузить dbf файл в 1с

DBF – широко распространенный формат хранения данных, появившийся в 80-х годах прошлого века. Впервые формат применялся в семействе СУБД dBase. В связи с популярностью и широким распространением dBase, было создано множество dBase-подобных программных продуктов, получивших собирательное название xBase. Несмотря на значительный возраст формата, он до сих пор достаточно широко используется. В данной статье рассматриваются способы работы с DBF из «1С:Предприятие».

В «1С:Предприятие» для работы с файлами формата DBF(версия dBase III) применяется специальный программный объект – xBase. Работа с этим объектом обычно не вызывает трудностей.

Внимание!

При работе с файлами DBF следует помнить, что имя файла должно удовлетворять ограничению 8.3.

Внимание!

Объект xBase доступен как на стороне клиента, так и на стороне сервера. Следует продумывать клиент-серверное взаимодействие при решении каждой конкретной задачи.

Чтение файла DBF

Чтение данных из файла DBF производится за несколько последовательных этапов:

  1. Создание объекта XBase;
  2. Открытие файла;
  3. Последовательный перебор всех строк файла и считывание значений полей;
  4. Закрытие файла.

Рассмотрим этот процесс на примере:

Можно использовать несколько измененный алгоритм перебора строк файла:

Выгрузка в файл DBF

Этапы выгрузки в файл DBF:

  1. Создание объекта XBase;
  2. Указание кодировки (если не указать, то будет использоваться кодировка ANSI);
  3. Описание полей;
  4. Создание файла;
  5. Цикл с добавлением и заполнением строк;
  6. Закрытие файла.

Рассмотрим этот процесс на примере:

При указании кодировки используется тип КодировкаXBase , который может принимать два значения:

  • ANSI – формат Windows;
  • OEM – формат DOS.

Добавление нового поля при описании структуры имеет синтаксис

Доступны следующие типы:

  • «N» – число;
  • «S» – строка;
  • «D» – дата;
  • «L» – булево;
  • «F» – аналогично «N» – число.

Длина поля является обязательным для типов полей «N», «F» и «S».

Работа с индексами

Совместно с файлом DBF может использоваться индексный файл, в котором может содержаться информация об одном или более индексе. Наличие индексов делает возможным использование поиска, а не только последовательного перебора всех строк файла.

Читайте также:  Как правильно резать ножом овощи

При создании индексного файла следует задать:

  • Перечень индексов;
  • Путь сохранения индексного файла (на этапе 4 выгрузки).

Пример создания индексного файла:

Процедура добавления нового индекса имеет синтаксис:

Для использования индексов при чтении из файла DBF следует:

  • Указать путь к индексному файлу (на этапе 2 загрузки);
  • Задать текущий индекс.

Пример открытия файла DBF с использованием индексного файла:

Внимание!

При открытии файла DBF позиционирование происходит на первой записи в файле. Первая запись в файле не соответствует первой записи в индексе. В связи с этим при использовании индексов перед тем, как последовательно обходить строки, необходимо спозиционироваться на первой строке индекса. Это можно сделать методом Первая () , например:

Для поиска может использоваться одна из двух функций:

  • Найти ( Ключ >, Режим >) ;
  • НайтиПоКлючу ( Режим >) .

В результате работы обоих функций возвращается значение с типом булево (найдена запись с указанными условиями или нет). В случае успешного поиска текущий указатель устанавливается на найденной строке. В качестве режима поиска может использоваться одно из значений:

Но при использовании этого метода запись не удаляется из файла безвозвратно, ей присваивается пометка удаления. При переборе строк помеченные на удаление записи пропускаются. Если необходимо обойти весь файл, включая помеченные на удаление записи, необходимо присвоить значение Истина свойству ОтображатьУдаленные объекта xBase. Узнать помечена запись на удаление или нет можно с помощью функции ЗаписьУдалена () . Для снятия пометки удаления используется метод Восстановить () .

Для непосредственного удаления помеченных записей используется метод Сжать () :

Если необходимо удалить все записи в файле непосредственно, то можно использовать метод ОчиститьФайл () :

Загрузка из DBF при помощи ADO

Для работы с файлами DBF может использоваться технология ADO. Драйверы ADO входят в состав операционной системы Windows и дополнительно их устанавливать не надо.

Рассмотрим пример кода для чтения из файла DBF по технологии ADO:

Читайте также:  Смс центр мегафон архангельская область

В приведенном примере используется строка подключения «Prov >

  • Provider – это используемый драйвер;
  • Data Source – путь, где находится файл DBF. Путь указывается с точностью до каталога. Имя файла используется в качестве имени таблицы в запросах;
  • Extended Properties – в случае обращения к файлам DBF является обязательным параметром. Можно указать формат файла

Внимание!

При чтении указанным способом кодировка по-умолчанию – OEM. Для того, чтобы изменить кодировку на ANSI необходимо в реестре Windows присвоить параметру HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftJet4.0EnginesxBaseDataCodePage значение «ANSI».

Остались вопросы?
Спросите в комментариях к статье.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Чтение и запись DBF в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Одним из самых распространенных форматов баз данных до сих пор остается формат DBF. И неумение работать с ним из 1С – серьезное ограничение профессиональных навыков для любого специалиста. Тем более изучение теории и практика по этому вопросу потребует совсем немного времени. К тому же работа с DBF файлом никаких дополнительных библиотек не требует – все инструменты встроены в платформу 1С 8.3.

Чтение, создание DBF и запись в данный формат

Вся работа с DBF в 1С происходит с помощью специального объекта – xBase. Рассмотрим основные действия с файлами, начав с чтения из конкретного DBF. В первую очередь необходимо расположить файл базы данных в каталоге, куда есть доступ у пользователя. Код для считывания данных в 1С достаточно прост:

  1. Указываем путь к базе в формате DBF;
  2. Создаем объект для взаимодействия с файлом, открываем его и устанавливаем указатель на первую строку с данными;
  3. В цикле обходим всю базу и производим действия с элементами. В данном случае просто отражаем их на экране пользователя;
  4. Закрываем файл.
Читайте также:  1С прибавить к дате день в запросе

Вторая часто встречающаяся задача по взаимодействию с объектом – выгрузка DBF из 1С 8.3. Здесь намного легче создать конечный файл нужного формата программно, чем использовать дополнительно программное обеспечение. Этот алгоритм в 1С тоже достаточно прост и состоит из нескольких строк кода:

  1. Создаем объект XBase;
  2. Определяем кодировку нового файла. Существует кодировка для Windows – ANSI и OEM предназначенная для DOS;
  3. Необходимо описать все колонки будущего файла DBF, указав их тип;
  4. Укажем каталог, в котором будет происходить создание DBF и запишем итоговый файл.

После того как мы создали файл нужного формата, потребуется выгрузка в DBF данных. Программируя этот процесс, помните о том, что данные ИБ находятся на сервере. Чтобы записать имеющиеся данные из 1С необходимо к предыдущему коду добавить следующий алгоритм:

  1. Получаем информацию из справочника;
  2. В цикле последовательно добавляем по 1строчке и записываем;
  3. Закрываем файл и проверяем, что запись прошла удачно.

Это основы работы с данным форматом. Существуют и другие способы открыть из 1С DBF, но xBase остается самым простым по синтаксису и пониманию. Поняв, как осуществляется простейшая выгрузка и загрузка из DBF, можно приступать к более сложным элементам, например, использованию индексов для поиска, удалению или изменению конкретных записей в DBF, а также применению технологии ADO.

Оперативная помощь по 1С – от простых консультаций до сложных внедрений. Протестируйте качество нашей работы – получите первую консультацию в подарок.