Удаляет все записи в таблице. При этом все существующие записи удаляются физически и не могут быть впоследствии восстановлены.
Синтаксис
ОчиститьФайл()Примеры платформы
Текст = "Все записи будут удалены. Продолжить?";
Режим = РежимДиалогаВопрос.ДаНет;
Если Вопрос(Текст, Режим) = КодВозвратаДиалога.Да Тогда
xB.ОчиститьФайл();
КонецЕсли;Полное описание, параметры и ограничения
XBase.ОчиститьФайл (XBase.Zap)
XBase (XBase)
ОчиститьФайл (Zap)
Доступен, начиная с версии 8.0.
Синтаксис:
ОчиститьФайл()
Описание:
Удаляет все записи в таблице. При этом все существующие записи удаляются физически и не могут быть впоследствии восстановлены.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Пример:
Текст = "Все записи будут удалены. Продолжить?";
Режим = РежимДиалогаВопрос.ДаНет;
Если Вопрос(Текст, Режим) = КодВозвратаДиалога.Да Тогда
xB.ОчиститьФайл();
КонецЕсли;
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Отличить ОчиститьФайл от очистки буфера
ОчиститьФайл физически убирает все строки собственного временного DBF. Описание его полей остаётся, но товары восстановить методом Восстановить нельзя.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте только в учебной базе на сервере. XBase работает с DBF, а не с таблицами вашей информационной базы; доступ к временному каталогу сервера должен быть разрешён.
Код сам создаёт уникальный новый каталог. В нём только собственные goods.dbf и goods.cdx: имена файлов соответствуют ограничению 8.3, имена полей и индексов латинские, не длиннее 10 символов.
Не подставляйте путь к существующему DBF. В каждой задаче новый набор: A-01 / Книга / 3 / 250 и B-02 / Ручка / 1 / 50. Сумма количества на цену равна 800.
Файлы закрываются перед удалением двух точных собственных путей. Пустой уникальный каталог остаётся; его путь выводится, чтобы при необходимости удалить именно его вручную.
УчебныйКаталог = ПолучитьИмяВременногоФайла();
ПроверкаКаталога = Новый Файл(УчебныйКаталог);
Если ПроверкаКаталога.Существует() Тогда
ВызватьИсключение "Учебный путь уже существует; существующие файлы не используем";
КонецЕсли;
СоздатьКаталог(УчебныйКаталог);
Сообщить("Собственный временный каталог: " + УчебныйКаталог);
ИмяDBF = УчебныйКаталог + "/goods.dbf";
ИмяCDX = УчебныйКаталог + "/goods.cdx";
База = Новый XBase;
Попытка
База.Кодировка = КодировкаXBase.ANSI;
База.АвтоСохранение = Ложь;
База.Поля.Добавить("CODE", "S", 10);
База.Поля.Добавить("TITLE", "S", 40);
База.Поля.Добавить("QTY", "N", 9, 0);
База.Поля.Добавить("PRICE", "N", 12, 2);
База.Поля.Добавить("ONDATE", "D");
База.Поля.Добавить("ACTIVE", "L");
База.СоздатьФайл(ИмяDBF);
Если Не База.Открыта() Тогда
ВызватьИсключение "Собственный DBF не открыт";
КонецЕсли;
База.Добавить();
База.CODE = "A-01";
База.TITLE = "Книга";
База.QTY = 3;
База.PRICE = 250;
База.ONDATE = Дата(2026, 10, 3);
База.ACTIVE = Истина;
База.Записать();
База.Добавить();
База.CODE = "B-02";
База.TITLE = "Ручка";
База.QTY = 1;
База.PRICE = 50;
База.ONDATE = Дата(2026, 10, 3);
База.ACTIVE = Истина;
База.Записать();
Сообщить(База.КоличествоЗаписей() = 2);
База.ОчиститьФайл();
Сообщить(База.КоличествоЗаписей() = 0);
Сообщить(База.Поля.Количество() = 6);
Сообщить(Не База.Первая());
Исключение
Если База.Открыта() Тогда
База.ЗакрытьФайл();
КонецЕсли;
Для Каждого ИмяСобственногоФайла Из СтрРазделить(ИмяDBF + "|" + ИмяCDX, "|") Цикл
СобственныйФайл = Новый Файл(ИмяСобственногоФайла);
Если СобственныйФайл.Существует() Тогда
УдалитьФайлы(ИмяСобственногоФайла);
КонецЕсли;
КонецЦикла;
ВызватьИсключение;
КонецПопытки;
Если База.Открыта() Тогда
База.ЗакрытьФайл();
КонецЕсли;
Для Каждого ИмяСобственногоФайла Из СтрРазделить(ИмяDBF + "|" + ИмяCDX, "|") Цикл
СобственныйФайл = Новый Файл(ИмяСобственногоФайла);
Если СобственныйФайл.Существует() Тогда
УдалитьФайлы(ИмяСобственногоФайла);
КонецЕсли;
КонецЦикла;Разбор по шагам
Создаём собственную структуру DBF и записываем два товара с явным Записать.
Подтверждаем исходные две строки нового файла.
ОчиститьФайл удаляет записи физически, не только текущие поля.
Проверяем ноль записей, прежние шесть полей и неуспешное позиционирование; пустые поля как товар не читаем.
Закрываем DBF и удаляем только два собственных файла; информационная база не изменяется.
Как проверить результат
Четыре сообщения Истина.
Код не пытается вызвать Восстановить после физической очистки.
Ожидаемый результат
Показано необратимое удаление всех записей без удаления схемы DBF.
На что обратить внимание
Не запускайте операции изменения, Сжать или ОчиститьФайл на чужом либо рабочем DBF.
Не заменяйте этим методом пропуск одной ошибочной импортируемой строки.
Пример допустим только потому, что весь файл только что создан самим уроком.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.