Перейти к содержимому

Как создать файл dbf

  • автор:

Чем создать DBF?

Рассмотрим основные варианты, с помощью которых можно создать файл формата DBF (Database File). Зачастую выполнение данной задачи не потребудет каких-либо особых хитростей, просто скачайте dBase (для операционной системы Windows) — интерфейс программы не сложный, да и скачать ее вы можете бесплатно. Если же вы пользуетесь операционной системой Mac — скачайте GTK DBF Editor как основную для данной платформы.

Вооружившись программой с правильным функционалом, вы наверняка не испытаете проблем с созданием файла DBF. Мы собрали в общий список все программы походящие под данную задачу для ОС Windows, Mac, Linux и сделали удобную таблицу:

Программы для создания DBF файлов

Чем создать DBF в Windows?

Microsoft Access
Microsoft Visual FoxPro
Astersoft DBF Manager

Mac

GTK DBF Editor

Linux

GTK DBF Editor

Общее описание расширения DBF

Формат DBF относится к форматам хранения данных, его используют в роли одного из нескольких стандартных методов хранения и передачи информации посредством систем управления базами данных, электронных таблиц и так далее. DBF формат был впервые использован в программном комплексе под названием «dBase II», данный формат файла выступал стандартным форматом базы данных.

Знаете другие программы, которые могут создать DBF? Не смогли разобраться как создать файл? Пишите в комментариях — мы дополним статью и ответим на ваши вопросы.

  • Видео форматы
  • Аудио форматы
  • Электронные книги
  • Текстовые форматы
  • Дисковые образы
  • Табличные данные
  • Растровые изображения
  • Векторные изображения
  • Резервное копирование
  • Raw
  • Сжатые файлы
  • Файлы данных
  • Базы
  • 3D Изображения
  • CAD файлы
  • Файлы разработчиков
  • Зашифрованные файлы
  • Исполняемые форматы
  • Шрифты
  • Файлы игр
  • GIS, карты
  • Другие расширения
  • Форматы макетов
  • Форматы плагинов
  • Файлы настроек
  • Системные файлы
  • Веб форматы

Работа с файлами DBF в 1С 8.3

Анна Викулина

Протестируйте качество нашей работы — получите первую консультацию в подарок.

от 700 руб.

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

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

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

    Указываем путь к базе в формате DBF;

 ПутьКФайлу = "D:\Nom.DBF"; 
 ФайлDBF = Новый XBase; ФайлDBF.ОткрытьФайл(ПутьКФайлу,,Истина); 
 Пока НЕ ФайлDBF.ВКонце() Цикл Сообщить("" + ФайлDBF.NAIM +" - "+ФайлDBF.ARTI); ФайлDBF.Следующая(); КонецЦикла; 
 ФайлDBF.ЗакрытьФайл(); 

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

    Создаем объект XBase;

 НовыйФайл = Новый XBase; 
 НовыйФайл.Кодировка = КодировкаXBase.ANSI; 
 НовыйФайл.Поля.Добавить("Naim","S",100); НовыйФайл.Поля.Добавить("KOD","N",10); 
 Путь = "D:\Clients.DBF"; НовыйФайл.СоздатьФайл(Путь); НовыйФайл.Записать(); 

Расположение файлов DBF

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

    Получаем информацию из справочника;

 Контрагенты = Справочники.Контрагенты.Выбрать(); 
 Пока Контрагенты.Следующий() Цикл НовыйФайл.Добавить(); НовыйФайл. Naim = Контрагенты.Наименование; НовыйФайл. KOD = Контрагенты.Код; НовыйФайл.Записать(); КонецЦикла; 
 НовыйФайл.ЗакрытьФайл(); 

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

Реклама

Скриптовый язык программирования Gentee — Бесплатный, кроссплатформенный язык программирования для автоматизации.

Gentee нужна ваша помощь!
Как разместить рекламу

dbf.create

Создать dbf файл и открыть его..

method uint dbf.create (
str filename,
str fields,
uint ver
)

Параметры

filename Имя создаваемого dbf файла.
fields Описание полей базы данных. Строка в которой через перенос строки или ‘;’ перечислены опиcание полей: Имя поля,Тип поля,Ширина,Размер дробной части для числового типа. Имя поля не может быть больше 10 символов. Тип поля может быть:
$DBFF_CHAR Строка.
$DBFF_DATE Дата.
$DBFF_LOGIC Логическое.
$DBFF_NUMERIC Целое.
$DBFF_FLOAT Действительное.
$DBFF_MEMO Memo поле.

Возвращаемое значение

В случае успешного завершения возвращается 1, в противном случае возвращается 0.

Создание и заполнение DBF файла в Microsoft Dynamics AX

В MS Dynamics AX приходится экспортировать данные для дальнейшей их обработки. В основном используют для этого Excel, так же используют другие форматы: текстовый, dbf таблицы и т.д. В этой статье я рассмотрю формат dbf таблиц, поскольку считаю, что данный материал будет полезен и не раз пригодится на различных проектах.

Итак, нужно создать класс, с помощью которого можно создать и заполнить dbf таблицу. Класс назовем DBFFiles, в нем буду использовать .NET объекты System.Data.OleDb.OleDbConnection для подключения к источнику данных, в нашем случае это dbf таблица и System.Data.OleDb.OleDbCommand для выполнения SQL инструкций с источником данных.

public class DBFFiles < System.Data.OleDb.OleDbConnection connection; System.Data.OleDb.OleDbCommand command; >void new()

Прежде чем начать работать с классом нужно создать и открыть подключение к источнику данных, для этого нужно задать строку подключения. Строка подключения состоит из поставщика данных (Provider), в нашем случае это Microsoft.Jet.OLEDB.4.0, места расположения источника данных (Data Source) и расширенных свойств (Extended Properties), в нашем случае это тип источника данных dBase IV.

public boolean openConnection(str _directory = WinAPI::getTempPath()) < boolean ret = true; str path = strFmt("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%1;Extended Properties=dBase IV", _directory); System.String pathDB = path; CLRInterop object; try < connection.set_ConnectionString(pathDB); connection.Open(); command.set_Connection(connection); >catch < object = CLRInterop::getLastException(); error(object.ToString()); ret = false; >return ret; >

Создание и заполнение dbf таблицы выполняется посредством SQL запросов выполняемых с источником данных, для этого нужно создать метод выполнения запросов.

private boolean executeQuery(str _query) < boolean ret = true; System.String query = _query; CLRInterop object; command.set_CommandText(query); try < command.ExecuteNonQuery(); >catch < object = CLRInterop::getLastException(); error(object.ToString()); ret = false; >return ret; >

Чтобы создать саму dbf таблицу нужно создать метод при помощи которого будет сформирован SQL запрос создания таблицы. На вход данного метода подаем строковую переменную _name где указываем наименование таблицы и коллекцию _listEnum где содержится информация о полях таблицы. В коллекции мы храним контейнеры со следующей структурой:

— первый элемент – это название поля,

— второй элемент – это тип поля,

— третий элемент – это длина строки либо количество знаков до запятой,

— четвертый элемент – это количество знаков после запятой.

public boolean createTableExecuteQuery(str _name, ListEnumerator _listEnum) < str query, columns; Types type; str name, beforeComma, afterComma; boolean ret = false; if (_name) < while (_listEnum.moveNext()) < if (typeOf(_listEnum.current()) == Types::Container) < [name, type, beforeComma, afterComma] = _listEnum.current(); columns += columns ? ", " : ""; columns += name + " "; switch (type) < case Types::Real: columns += strFmt("decimal(%1, %2)", beforeComma, afterComma); break; case Types::Date: columns += "date"; break; case Types::String: default: columns += strFmt("nvarchar(%1)", beforeComma); >> > if (columns) query = strFmt("CREATE TABLE %1 (%2)", _name, columns); if (query) ret = this.executeQuery(query); > return ret; >

Когда уже таблица создана то можно начать ее заполнять. Для этого нужно создать метод который сформирует SQL запрос для вставки данных в таблицы. Входные данные здесь используется те же что и для метода создания таблицы createTableExecuteQuery.

public boolean insertExecuteQuery(str _name, ListEnumerator _listEnum) < str query, columns, values; str name; anytype value; boolean ret = false; if (_name) < while (_listEnum.moveNext()) < if (typeOf(_listEnum.current()) == Types::Container) < [name, value] = _listEnum.current(); columns += columns ? ", " + name : name; value = typeOf(value) == Types::Date || typeOf(value) == Types::String ? strFmt("'%1'", value) : strFmt("%1", value); values += values ? ", " + value : value; >> if (columns) query = strFmt("INSERT INTO %1 (%2) values (%3)", _name, columns, values); if (query) ret = this.executeQuery(query); > return ret; >

Вот и все, теперь с помощью этого класса можно создать и заполнить dbf таблицу. В случае если нужно будет отредактировать в ней данные или ее вовсе удалить, то не сложно дописать свои методы для этих целей, но нужно знать синтаксис SQL чтобы правильно построить запросы.

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

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