Чтение и запись в файл DBF средствами 1С:Предприятие 8.2

Система 1С:Предприятие позволяет работать с файлами базы данных формата dbf (dBase III). Для этого используется объект XBase.

Пример записи данных в файл dbf (листинг 1) средствами внутреннего языка системы 1С:Предприятие 8.2. Создадим три поля:

  • CODE — код товара, тип строка;
  • NAME — наименование товара, тип строка;
  • COST — цена товара, тип число

Листинг 1 — Запись данных в файл DBF:

&НаКлиенте
Процедура ЗаписатьДанные(Команда)    
    ВыгрузитьВФайл();                 
КонецПроцедуры

 &НаСервереБезКонтекста
Процедура ВыгрузитьВФайл()
    ПутьКФайлу = "d:\temp\";
    БД = Новый XBase;
    БД.Поля.Добавить("CODE", "S", 9);
    БД.Поля.Добавить("NAME", "S", 40);
    БД.Поля.Добавить("COST", "N", 15, 2);

    БД.СоздатьФайл(ПутьКФайлу + "tovar.dbf",
                                         ПутьКФайлу + "index.cdx");
    БД.Индексы.Добавить("IDXCODE", "CODE");
    ИБД = БД.СоздатьИндексныйФайл(ПутьКФайлу + "index.cdx");
    БД.АвтоСохранение = Истина;

    Выборка=Справочники.Номенклатура.Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа Тогда
            Продолжить;
        КонецЕсли;
        БД.Добавить();
        БД.CODE = СокрЛП(Выборка.Код);
        БД.NAME = СокрЛП(Выборка.Наименование);
        БД.COST = Выборка.ЗакупочнаяЦена;        
    КонецЦикла;    

    БД.ЗакрытьФайл();
КонецПроцедуры

Процедура ПрочитатьДанные() выполняет чтение данных из файла dbf и выводить полученные данные в сообщении пользователю (листинг 2).

Листинг 2 — Чтение данных из файла DBF:

&НаКлиенте
Процедура ПрочитатьДанные(Команда)
    ПутьКФайлу = "d:\temp\";
    БД = Новый XBase;
    БД.ОткрытьФайл(ПутьКФайлу + "tovar.dbf", ПутьКФайлу + 
                                                  "index.cdx"); 
    БД.ТекущийИндекс = БД.Индексы.IDXCODE;

    Сообщение = Новый СообщениеПользователю();

    БД.Первая();
    Пока Истина Цикл
        Сообщение.Текст = СокрЛП(БД.CODE) + " " + СокрЛП(БД.Name) + 
                                              " " +БД.COST;
        Сообщение.Сообщить();
        Если Не БД.Следующая() Тогда
            Прервать;
        КонецЕсли;
     КонецЦикла;    

    БД.ЗакрытьФайл();
КонецПроцедуры
Запись опубликована в рубрике Программирование и сопровождение 1с. Добавьте в закладки постоянную ссылку.

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

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

Solve : *
30 − 14 =