ФайлНаДиске = Новый Файл(ИмяФайла); Если НЕ(ФайлНаДиске.Существует()) Тогда Предупреждение("Файл с таким именем не существует " + ИмяФайла); Возврат; КонецЕсли; ДБФ = Новый xBase; ДБФ.Кодировка = КодировкаXBase.OEM; ДБФ.ОткрытьФайл(ИмяФайла); Если ДБФ.Открыта() = 0 Тогда Предупреждение("Неудалось открыть файл. Возможно он занят другим приложением!"); Возврат; КонецЕсли; ДБФ.Индексы.Добавить("IDX_vE","VAL(EXTENSION)",Ложь,Ложь,"PREFLEN1>0"); ДБФ.СоздатьИндексныйФайл(ИмяИндекса); ДБФ.ТекущийИндекс = ДБФ.Индексы.IDX_vE; ДБФ.Ключ.EXTENSION = "1002"; Если ДБФ.НайтиПоКлючу("=") = Истина Тогда ТекЗапись=ДБФ.НомерЗаписи(); Пока СокрЛП(ДБФ.EXTENSION) = "1002" Цикл Сообщить("-" + ДБФ.EXTENSION + " - " + ДБФ.НомерЗаписи() + "-"); ДБФ.Следующая(); КонецЦикла; Иначе Сообщить("Нет записи!"); КонецЕсли; ДБФ.ЗакрытьФайл(); УдалитьФайлы(ИмяИндекса);
// Перекачка справочника "Подразделение" в DBF-файле ФайлБД=КаталогИмя+"Spr_podr."; // Название файла без расширения xБД=Новый Файл(ФайлБД+"dbf"); // Создание объекта файла в среде 1С // Удалить, если файлы уже есть (в том числе и индексный файл) Если xБД.Существует() Тогда УдалитьФайлы(ФайлБД,"*"); КонецЕсли; // Создание файлов xБД = Новый XBase; // создание объекта файла формата xBase // добавим поля xБД.Поля.Добавить("Id", "S", 5); xБД.Поля.Добавить("Name", "S", 25); xБД.СоздатьФайл(ФайлБД+"dbf"); // создадим реальный файл из объекта // Индексное выражение ИндВр="Id"; xБД.индексы.Добавить("Id",ИндВр,Истина); ИБД = xБД.СоздатьИндексныйФайл(ФайлБД+"cdx"); // создание индексного файла xБД.АвтоСохранение=Истина; xБД.ЗакрытьФайл(); // Выкачка данных xБД.ОткрытьФайл(ФайлБД+"dbf",ФайлБД+"cdx"); xБД.ТекущийИндекс = xБД.индексы.Id; Выборка=Справочники.Подразделения.Выбрать(); Пока Выборка.Следующий() Цикл xБД.Добавить(); xБД.ID=Выборка.Код; xБД.Name=Выборка.Наименование; xБД.Записать(); КонецЦикла; xБД.ЗакрытьФайл(); // проверка работы индекса xБД.ОткрытьФайл(ФайлБД+"dbf",ФайлБД+"cdx"); xБД.ТекущийИндекс = xБД.индексы.Id; Если xБД.Найти("00003",">=") Тогда Сообщить(xБД.ID+" - "+xБД.NAME); Пока xБД.Следующая() Цикл Сообщить(xБД.ID+" - "+xБД.NAME); КонецЦикла; КонецЕсли; xБД.ЗакрытьФайл();