XBase (работа с DBF-файлами)

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

Запись DBF-файла

Следующий фрагмент программы создает DBF-файл с тремя полями и выгружает в него справочник Сотрудники:

 
ФайлВВР = Новый XBase;
ФайлВВР.Поля.Добавить("Name","S",100);
ФайлВВР.Поля.Добавить("Вер","S",5 0) ;
ФайлОВР.Поля.Добавить("Sum","N",10,2);
ФайлВВР.Кодировка = КодировкаХВаве.ОЕМ; //кодировка BOS
ФайлВВР.СоздатьФайл("с:\staff.dbf");
Сотрудники = Справочники.Сотрудники.Выбрать();
Пока Сотрудники.Следующий() Цикл
	ФайлВВР.Добавить();
	ФайлВВР.Name = Сотрудники.Наименование;
	ФайлВВР.Вер = Сотрудники.Подразделение;
	ФайлВВР.Sum = Сотрудники.Оклад;
	ФайлВВР.Записать();
КонецЦикла;
ФайлВВР.ЗакрытьФайл();
 

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

Чтение DBF-файла производится еще проще:

 

ФайлВВР = Новый XBase;
ФайлВВР.ОткрытьФайл("с:\staff.dbf",.Истина); //только для чтения
ФайлВВР.Первая();
Пока НЕ ФайлВВР.ВКонце() Цикл
	НовСотр = Справочники.Сотрудники.СоздатьЭлемент();
	НовСотр.Наименование = ФайлВВР.Name;
	НовСотр.Подразделение = ФайлВВР.Вер;
	НовСотр.Оклад = ФайлВВР.Sum;
	НовСотр.Записать() ;
	ФайлВВР.Следующая();
КонецЦикла,
ФайлВВР.ЗакрытьФайл();

 

Удаленные записи

Файлы DBF устроены таким образом, что удаление записи не приводит к физическому удалению записи из файла. Запись просто помечается на удаление и пропускается при переборе. Таким образом, размер файла остается прежним.

Чтобы физически удалить все помеченные на удаление записи, нужно применить метод Сжать. Средства встроенного языка позволяют работать с записями, помеченными на удаление, перебирать их и даже отменять пометку на удаление.

Индексы

Для упорядочивания содержимого DBF-файла и поиска в нем по значению одного или нескольких полей применяется механизм индексов. Его применение можно сравнить с сортировкой картотеки по определенному признаку (совокупности признаков). Однако, в отличие от картотеки, файл может иметь сразу несколько индексов, и, соответственно, являться упорядоченным одновременно по нескольким признакам.

Индексы хранятся в индексном файле, причем один индексный файл может содержать сразу несколько индексов. Рекомендуется для одного файла DBF иметь один индексный файл, в котором хранятся все индексы этого файла. Продвижение сайтов в google. Профессиональное SEO и seo раскрутка групп вКонтакте. . Электроинструмент, купить сверла от Максидрил.