Иллюстрированный самоучитель по языку системы 1С:Предприятие

Назначение агрегатного типа данных XBase

Для работы с базами данных формата DBF в системе может использоваться специальный агрегатный тип данных – XBase. Механизм работы с базами данных формата DBF предназначен для обеспечения возможности манипулирования ими непосредственно из встроенного языка программы 1С:Предприятие. Каждый XBase-объект может быть связан с одним файлом базы данных.

Атрибуты объекта и поля базы данных

Объекты XBase имеют динамически изменяемый набор атрибутов, состав и тип которых зависит от структуры файла базы данных, с которым связан конкретный объект. Объект содержит в своих атрибутах информацию об одной текущей записи. Каждому полю файла базы данных соответствует один атрибут объекта. Наименование атрибута совпадает с именем поля.

Запись изменений в базу данных

Каждый объект представляет собой структуру данных, расположенных в памяти компьютера и изменение содержимого его атрибутов не вызывает немедленного изменения в файлах базы данных. При включенном режиме автосохранения запись содержимого объекта в файлы БД происходит при изменении позиционирования (переход с следующей записи, поиск по ключу и т. д.), при выключенном режиме автосохранения запись изменений происходит только при вызове соответствующего метода объекта.

Работа с индексными файлами

Следует иметь в виду, что одновременно XBase-объект может быть связан не более, чем с одним индексным файлом. Все изменения в базе данных, сделанные в сеансе работы с одним индексным файлом, никак не отражаются на остальных. Поэтому не рекомендуется иметь более одного индексного файла для БД. В противном случае, после каждого открытия БД с индексным файлом, отличным от открытого в предыдущем сеансе работы с базой, следует производить переиндексацию (обновление содержимого индексного файла).

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

Удаление записи из базы данных не приводит к физическому уничтожению ее на диске. В этом случае в специальном служебном поле записи, не доступном обычными средствами, ставится пометка об удалении. На записи, помеченные удаленными, позиционирования не происходит, если не включен специальный режим просмотра удаленннх записей. Имеется набор методов для включения/выключения специального режима просмотра, а также определения, является ли спозиционированная запись удаленной, и восстановления удаленной записи.

Метод сжатия базы вызывает физическое уничтожение записей, помеченных как удаленные. Метод очистки базы вызывает физическое уничтожение всех записей. После применения этих методов восстановление удаленных записей становится невозможным.

Создание базы данных, индекса, индексного файла

Помимо работы с существующими базами данных, агрегатный тип XBase имеет набор методов, позволяющих создать новую базу данных произвольной структуры, новые индексы и новый индексный файл. Следует отметить, что, если использование методов, изменяющих структуру БД, возможно только для объектов, не связанных с базой данных (т. е. для вновь создаваемых БД), то создание новых индексов и индексного файла возможно как для создаваемых БД, так и для уже существующих и открытых.

Ограничения

Основное назначение объектов XBase – организация экспорта-импорта информации в/из внешних файлов формата DBF. Использование методов Xbase для доступа непосредственно к данным информационной базы системы 1С:Предприятие не рекомендуется.

Объекты XBase не поддерживают поля типа memo (см. ДобавитьПоле).

Поддерживаемые объектом XBase фукции, которые можно использовать в выражениях и фильтрах индексов перечислены в разделе "Выражение и фильтр индекса".

Объекты XBase поддерживают только монопольный доступ к файлам. XBase-объекты поддерживают индексные файлы в формате CDX. Однако, использование внешними программами (например, FoxBase) индексных файлов, созданных с помощью объектов XBase, так же, как и использование объектами индексных файлов, созданных внешними программами, не рекомендуется из-за возможной несовместимости версий.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.