DBF – широко распространенный формат хранения данных, появившийся в 80-х годах прошлого века. Впервые формат применялся в семействе СУБД dBase. В связи с популярностью и широким распространением dBase, было создано множество dBase-подобных программных продуктов, получивших собирательное название xBase. Несмотря на значительный возраст формата, он до сих пор достаточно широко используется. В данной статье рассматриваются способы работы с DBF из «1С:Предприятие».
В «1С:Предприятие» для работы с файлами формата DBF(версия dBase III) применяется специальный программный объект – xBase. Работа с этим объектом обычно не вызывает трудностей.
Внимание!
При работе с файлами DBF следует помнить, что имя файла должно удовлетворять ограничению 8.3.
Внимание!
Объект xBase доступен как на стороне клиента, так и на стороне сервера. Следует продумывать клиент-серверное взаимодействие при решении каждой конкретной задачи.
Чтение данных из файла DBF производится за несколько последовательных этапов:
Можно использовать несколько измененный алгоритм перебора строк файла:
Пока НЕ ДБФ . ВКонце () Цикл Сообщить(ДБФ. NAME); ДБФ. Следующая (); КонецЦикла;Этапы выгрузки в файл DBF:
Рассмотрим этот процесс на примере:
ДБФ = Новый XBase; // Этап 1. Создание объекта XBase ДБФ. Кодировка = КодировкаXBase. OEM; // Этап 2. Указание кодировки ДБФ. Поля. Добавить("CODE" , "S" , 9 ); // Этап 3. Описание имени и типа поля ДБФ. Поля. Добавить("NAME" , "S" , 40 ); ДБФ. СоздатьФайл("D:\MyFile.dbf" ); // Этап 4. Создание файла Выборка = Справочники. Номенклатура. Выбрать(); Пока Выборка. Следующий() Цикл ДБФ. Добавить(); // Добавление строки ДБФ. CODE = Выборка. Код; // Заполнение значения поля ДБФ. NAME = Выборка. Наименование; ДБФ. Записать(); // Запись строки КонецЦикла; ДБФ. ЗакрытьФайл (); // Этап 6. Закрытие файлаПри указании кодировки используется тип КодировкаXBase , который может принимать два значения:
Добавление нового поля при описании структуры имеет синтаксис
Добавить(< Имя>, < Тип>, < Длина>, < Точность>)Доступны следующие типы:
Длина поля является обязательным для типов полей «N», «F» и «S».
Совместно с файлом DBF может использоваться индексный файл, в котором может содержаться информация об одном или более индексе. Наличие индексов делает возможным использование поиска, а не только последовательного перебора всех строк файла.
При создании индексного файла следует задать:
Пример создания индексного файла:
ДБФ. Индексы. Добавить("INDCODE" , "CODE" ); ДБФ. СоздатьФайл ("D:\MyFile.dbf" , "D:\index.cdx" );Процедура добавления нового индекса имеет синтаксис:
Добавить(< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)Для использования индексов при чтении из файла DBF следует:
Пример открытия файла DBF с использованием индексного файла:
ДБФ. ОткрытьФайл("D:\MyFile.dbf" , "D:\index.cdx" ); ДБФ. ТекущийИндекс = ДБФ. Индексы. INDCODE ;Внимание!
При открытии файла DBF позиционирование происходит на первой записи в файле. Первая запись в файле не соответствует первой записи в индексе. В связи с этим при использовании индексов перед тем, как последовательно обходить строки, необходимо спозиционироваться на первой строке индекса. Это можно сделать методом Первая () , например:
ДБФ . Первая ();Для поиска может использоваться одна из двух функций:
В результате работы обоих функций возвращается значение с типом булево (найдена запись с указанными условиями или нет). В случае успешного поиска текущий указатель устанавливается на найденной строке. В качестве режима поиска может использоваться одно из значений:
Рассмотрим поиск в файле DBF на примерах:
ДБФ = Новый XBase; ДБФ. ОткрытьФайл("D:\MyFile.dbf" , "D:\index.cdx" ); // При открытии файла DBF дополнительно указывается индексный файл ДБФ. ТекущийИндекс = ДБФ. Индексы. INDCODE; // Установка текущего индекса // поиск методом Найти: Если ДБФ. Найти("000000003" , "=" ) Тогда Сообщить( + ДБФ. NAME); Иначе Сообщить("Не найдено" ); КонецЕсли; // поиск методом НайтиПоКлючу: ДБФ. Ключ. CODE = "000000002" ; Если ДБФ. НайтиПоКлючу("=" ) Тогда Сообщить("Найдено. Наименование элемента: " + ДБФ. NAME); Иначе Сообщить("Не найдено" ); КонецЕсли; ДБФ. ЗакрытьФайл ();Удаление записи производится методом Удалить () :
ДБФ. Удалить ();Но при использовании этого метода запись не удаляется из файла безвозвратно, ей присваивается пометка удаления. При переборе строк помеченные на удаление записи пропускаются. Если необходимо обойти весь файл, включая помеченные на удаление записи, необходимо присвоить значение Истина свойству ОтображатьУдаленные объекта xBase. Узнать помечена запись на удаление или нет можно с помощью функции ЗаписьУдалена () . Для снятия пометки удаления используется метод Восстановить () .
ДБФ. ОтображатьУдаленные = Истина; Пока НЕ ДБФ. ВКонце() Цикл Если ДБФ. ЗаписьУдалена() Тогда ДБФ. Восстановить(); КонецЕсли; ДБФ. Следующая (); КонецЦикла;Для непосредственного удаления помеченных записей используется метод Сжать () :
ДБФ. Сжать ();Если необходимо удалить все записи в файле непосредственно, то можно использовать метод ОчиститьФайл () :
ДБФ. ОчиститьФайл ();Для работы с файлами DBF может использоваться технология ADO. Драйверы ADO входят в состав операционной системы Windows и дополнительно их устанавливать не надо.
Рассмотрим пример кода для чтения из файла DBF по технологии ADO:
АДО = Новый COMОбъект("ADODB.Connection" ); // Создание COM-объекта АДО. Open("Provider=Microsoft.Jet.OLEDB.4.0; |Data Source=""D:\""; |Extended Properties=DBASE III" ); БД = АДО. Execute("Select * from MyFile" ); // запрос с получением всех записей из файла MyFile.DBF Пока БД. EOF= 0 Цикл //Цикл по записям файла DBF Сообщить(БД. Fields("Name" ). value); // Пример обращения к значению поля БД. MoveNext(); //Переходим к следующей записи КонецЦикла; АДО. Close();В приведенном примере используется строка подключения «Provider=Microsoft.Jet.OLEDB.4.0;Data Source= «D:\»;Extended Properties=DBASE III». В этой строке:
Внимание!
При чтении указанным способом кодировка по-умолчанию – OEM. Для того, чтобы изменить кодировку на ANSI необходимо в реестре Windows присвоить параметру HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage значение «ANSI».
DBF – файловый формат, созданный для работы с базами данных, отчетами и электронными таблицами. Его структура состоит из заголовка, в котором описывается содержимое, и основной части, где находится весь контент в табличном виде. Отличительная черта этого расширения – возможность взаимодействия с большинством систем управления баз данных.
Рассмотрим софт поддерживающий просмотр данного формата.
DBF Commander — многофункциональное приложение для обработки DBF файлов различных кодировок, позволяет производить базовые манипуляции с документами. Распространяется платно, но имеет пробный период.
Для открытия:
DBF Viewer Plus – бесплатный инструмент для просмотра и редактирования DBF, простой и удобный интерфейс представлен на английском языке. Имеет функцию создания собственных таблиц, не требует инсталляции.
Для просмотра:
DBF Viewer 2000 — программа с довольно упрощённым интерфейсом, позволяет работать с файлами объёмом более 2 ГБ. Имеет русский язык и пробный период использования.
Чтобы открыть:
CDBF — мощный способ редактирования и просмотра баз данных, также позволяет создавать отчеты. Расширить функционал можно, используя дополнительные плагины. Присутствует русский язык, распространяется платно, однако имеет триал версию.
Для просмотра:
— один из компонентов пакета программ Microsoft Office, хорошо известного большинству пользователей.
Чтобы открыть:
Мы рассмотрели основные способы открытия DBF документов. Из подборки выделяется лишь DBF Viewer Plus — полностью бесплатное ПО, в отличие от остальных, которые распространяются на платной основе и имеют только пробный период.
Он появился ещё в 1980 году и в настоящее время является всё менее используемым. Тем не менее он применяется во многих бизнес и специализированных приложениях, например, в продуктах 1С, программах проектирования, инженерных приложениях. При работе с такими программами часто необходимо редактировать файл, имеющий формат DBF.
Особенности работы с DBF-файлами в Windows.
По умолчанию в Windows с ним не сопоставлено программ. До 2007 года была возможность работать с DBF в Excel, но в настоящее время его можно открыть как простую таблицу , но не сохранить в качестве DataBaseFile.
Файл, имеющий расширение DBF, состоит из следующих частей:
DBF используются при работе с большими массивами информации, взаимосвязанными между собой. Каждой записи присваивается уникальный ключ, создаётся структура взаимосвязи. Как упрощённый пример, можно привести каталог товаров, где у каждого наименования есть признак, например цвет или материал. А у каждого материала или цвета есть свои характеристики, например цена, срок службы, дисконт. И таким образом, получается связанная система многоуровневых информационных баз.
Расширение DBF у файла говорит, что это служебные данные, которые впоследствии обрабатываются какой-то программой. Сами по себе для обычных пользователей компьютера они редко представляют интерес. Но если вы осваиваете некоторое специализированное приложение, вам может понадобиться знать, как и чем открыть DBF-файл, чтобы его отредактировать.
С файлом DBF может находиться документ, имеющий расширение DBT или FPT. Это заметки к базе данных, что представляют собой текстовый документ, открывающийся в среде вместе с основным файлом.
Поскольку, как было сказано ранее, в Windows не определено сопоставление DBF конкретной программе, чтобы его открыть, необходимо:
Существуют два разных типа программ, что могут открыть формат DBF: средства программистов, которые на основании обработки баз создают утилиты для конечных пользователей, и программы для потребителей, работающих с базами данных на «бытовом» уровне.
Файл, имеющий формат DBF, можно открыть следующими программами.
система управления базами данных для обычных пользователей. Обладает удобным интерфейсом, простотой в управлении. Основными объектами Access являются:И также имеется встроенный язык программирования, расширяющий возможности приложения.
Visual FoxPro - мощный инструмент, визуальная среда для создания СУБД от компании Майкрософт. Включает всё, что нужно для управления информацией:
DBFView - простой, но мощный инструмент открытия, редактирования, просмотра и печати. Поддерживает форматы DBF: dBase, Clipper, FoxPro, Visual FoxPro и многие другие. С помощью этого приложения можно добавлять, переименовывать, удалять, сортировать, упаковывать и просматривать записи, экспортировать в TXT и HTML, импортировать и экспортировать в Excel , а также конвертировать формат DBF в CSV и XLS-файлы.
DBF Viewer Plus - не требующий установки простой редактор для работы с разными форматами DBF, включая dBase, Clipper, Foxpro. Позволяет открывать, просматривать данные, отфильтровывать записи, печать и предпросмотр таблиц, редактировать, добавлять и удалять записи, осуществлять расширенный поиск, создавать файлы, выполнять экспорт документов в форматы CSV, PDF, XLS, RTF, WKS, XML, HTML.
DBF Commander Professional - профессиональное средство редактирования и просмотра с поддержкой SQL-запросов.
Этот инструмент позволяет:
Таковы некоторые средства работы с файлами, имеющими формат DBF. Если вам нужно просто просмотреть содержимое, то скачайте одну из простых утилит с удобным интерфейсом. Если же планируете заниматься программированием и разработкой в среде управления базами данных, то приобретите профессиональный программный пакет с широким функционалом.
DBF Viewer 2000 ® - приложение для просмотра и редактирования DBF всех типов - Clipper, dBase, FoxPro, Visual FoxPro, Visual dBase.
Программа выполняет различные действия: запросы, удаление дубликатов или экспорт в различные форматы - быстрее чем вы ожидаете!
DBF редактор динамически создает визуальные формы на основе структуры DBF файлов для редактирования и запросов.Программа позволяет также просматривать и редактировать мемо поля следующих форматов: dBase III, dBase IV, FoxPro, VFP и dBase Level 7.
Программа полность поддерживает использование коммандной строки для следующих действий: импорт, экспорт, удаление дублирующихся записей или замена данных в DBF файлах. работает независимо от различных СУБД, - все что вам нужно для просмотра и редактирования DBF файла это установить приложение!
Интерфейс приложения достаточно простой и удобный, позволяет вам сохранить много времени при каждодневной работе.
Вы можете добавлять, удалять, переименовывать, менять порядок полей и оптимизировать структуру DBF файлов.
DBF Viewer 2000 позволяет вам импортировать данные из следующих форматов: TXT,CSV, Excel (XLS,XLSX), DBF и Paradox. Импорт данных может выполняться с предварительным просмотром или из коммандной строки.
Приложение позволяет вам экспортировать DBF файлы в Excel (XLS, XLSX), CSV, TXT, SQL, SDF, XML, HTML, PRG, и MS SQL, MySQL, Oracle, PostgreSQL скрипты.
Удаление дублирующихся записей легко как 1-2-3.
DBF Viewer 2000 запускается на всех версиях Windows от 95 до XP, Vista, 7/8/10 и Server Editions (32/64-bit)