Центральный Дом Знаний - Работа в 1С 38

Информационный центр "Центральный Дом Знаний"

Заказать учебную работу! Жми!



ЖМИ: ТУТ ТЫСЯЧИ КУРСОВЫХ РАБОТ ДЛЯ ТЕБЯ

      cendomzn@yandex.ru  

Наш опрос

Как Вы планируете отдохнуть летом?
Всего ответов: 903

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Форма входа

Логин:
Пароль:

Работа в 1С 38

Работа в программе 1С

стр.: 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32
33  34  35  36  37  38  39  40  41  42  43  44  45  


Тема 12 Работа с DBF–файлами

Цель:

  1. познакомится с понятием и областью применения агрегатного типа XBase;

  2. приобрести и закрепить навыки применения методов для работы с XBase для загрузки данных из базы данных или для выгрузки данных в базу данных.

Пояснения к работе

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

Объект создается при помощи функции СоздатьОбъект() с ключевым словом XBase, ссылка на который присваивается переменной:

Пример:

ДБФ = СоздатьОбъект("XBase");

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

В тексте программного модуля под термином <Поле> понимается имя конкретного столбца файла базы данных, с которым связан объект. Атрибут имеет смысл, только если файл базы данных находится в открытом состоянии. Состав атрибутов объекта может динамически изменяться в процессе исполнения 1С:Предприятия и определяется набором полей файла базы данных, с которым объект связан в данных момент времени.

Пример:

ФИО = ДБФ.FIO;

Объекты XBase не поддерживают поля типа memo.

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

12.1 Методы для работы с DBF–файлами

СоздатьФайл(<ПутьКБазе>, <ПутьКИндексу>) – создает новый файл базы данных формата DBF. Если база с таким именем существует, то выдается ошибка.

Параметры:

<ПутьКБазе> – строковое выражение, содержащее путь к файлу базы данных формата DBF.

<ПутьКИндексу> – необязательный параметр. Строковое выражение, содержащее путь к индексному файлу базы данных.

Пример:

ДБФ = СоздатьОбъект("XBase");

// Определение полей и индексов новой БД

// …

// Теперь физически создаем базу

ДБФ.СоздатьФайл("mydb.dbf", "mydb.cdx");

Открыта() – возвращает значение флага открытия файла базы данных.

Возвращаемое значение: 1 – база открыта; 0 – база не открыта.

ОткрытьФайл(<ПутьКБазе>, <ПутьКИндексу>, <ТолькоЧтение>) – открывает существующую базу данных формата DBF.

Параметры:

<ПутьКБазе> – строковое выражение, содержащее путь к файлу базы данных формата DBF.

<ПутьКИндексу> – необязательный параметр. Строковое выражение, содержащее путь к индексному файлу базы данных.

<ТолькоЧтение> – необязательный параметр. 1 – файл открывается в режиме только чтение; 0 – файл открывается в режиме полного доступа (при этом файл открывается в эксклюзивном режиме). Значение по умолчанию – 0.

Пример:

// Подразумевает, что объект ДБФ уже создан и

// доступен в данном контексте

ДБФ.ОткрытьФайл(ПутьДБ);

Если ДБФ.Открыта() = 1 Тогда

Предупреждение("База открыта");

Иначе

Предупреждение("Не смогли открыть Базу!");

КонецЕсли;

ЗакрытьФайл() – закрывает ранее открытую или созданную базу данных формата DBF.

Пример:

Если ДБФ.Открыта() = 1 Тогда

ДБФ.ЗакрытьФайл();

КонецЕсли;

ОчиститьФайл() – удаляет все записи в базе. При этом все существующие записи удаляются физически и не могут быть впоследствии восстановлены.

Пример:

Если Вопрос("Вы уверены, что надо очистить базу?", 1, 5) = 1 Тогда

ДБФ.ОчиститьФайл();

КонецЕсли;

Сжать() – удаляет записи, помеченные как удаленные.

Пример:

Если Вопрос("Уничтожить записи, помеченные как удаленные?", 1, 5) = 1 Тогда

ДБФ.Сжать();

КонецЕсли;

Переиндексировать() – выполняет переиндексирование базы. Объекты XBase автоматически выполняют индексацию при изменениях базы данных, однако, при работе более чем с одним индексным файлом или после аварийных завершений может потребоваться принудительная переиндексация (для «своих» БД система 1С:Предприятие выполняет это автоматически).

Пример:

Если ФлагАварийногоЗавершения = 1 Тогда

ДБФ.Переиндексировать();

КонецЕсли;

ПоказыватьУдаленные(<Режим>) – позволяет определить и изменить режим показа записей, помеченных на удаление в базе. В случае, если параметр не указан, изменения режима не происходит.

Параметры:

<Режим> – необязательный параметр. 1 – установить режим показа удаленных записей в базе. 0 – снять режим.

Возвращаемое значение: текущее числовое значение режима показа удаленных записей в базе (на момент до исполнения метода).

Пример:

РежПокУд = ДБФ.ПоказыватьУдаленные(1);

Первая() – предназначен для перехода на первую запись.

Возвращаемое значение: 1 – если действие выполнено; 0 – если действие не выполнено.

Пример:

// Обнуляет значения всех полей первой записи

ДБФ.Первая();

Последняя() – предназначен для перехода на последнюю запись.

Возвращаемое значение: 1 – если действие выполнено; 0 – если действие не выполнено.

Пример:

ДБФ.Последняя();

Следующая() – предназначен для позиционирования на следующую запись.

Возвращаемое значение: 1 – получена следующая запись; 0 – следующая запись не найдена.

ВКонце() – возвращает значение признака конца файла.

Возвращаемое значение: 1 – конец файла достигнут; 0 – конец файла не достигнут.

Пример:

ДБФ.Первая();

Пока ДБФ.ВКонце() = 0 Цикл

// действия с записью

ДБФ.Следующая();

КонецЦикла;

Предыдущая() – предназначен для перехода на предыдущую запись.

Возвращаемое значение: 1 – получена предыдущая запись; 0 – предыдущая запись не найдена.

НомерЗаписи() – возвращает физический порядковый номер текущей записи в файле базы данных. Результат не зависит от установки текущего индекса.

Возвращаемое значение: номер текущей записи.

Пример:

Ном=ДБФ НомерЗаписи();

Перейти(<НомерЗаписи>) – позволяет перейти на запись по ее физическому порядковому номеру в базе данных. Позволяет перейти на запись, помеченную удаленной, даже если не установлен режим просмотра удаленных записей.

Параметры:

<НомерЗаписи> – физический порядковый номер записи в базе данных.

Пример:

ДБФ.Перейти(3);

ВНачале() – возвращает значение признака начала файла.

Возвращаемое значение: 1 – начало файла не достигнуто; 0 – начало файла не достигнуто.

ТекущийИндекс(<НазваниеИндекса>) – устанавливает/определяет текущий индекс работы с базой. Установка текущего индекса работы с базой оказывает влияние на работу методов Найти(), НайтиПоКлючу(), Первая(), Последняя(), Следующая(), Предыдущая().

Параметры:

<НазваниеИндекса> – необязательный параметр. Строковое выражение с названием индекса. Если параметр опущен, изменения текущего индекса не происходит.

Возвращаемое значение: строковое значение с названием текущего индекса (на момент до выполнения метода).

Пример:

ИмяТекИнд = ДБФ.ТекущийИндекс(Инд);

ДБФ.Первая();

ДБФ.ТекущийИндекс(ИмяТекИнд);

Найти(<Ключ>, <Режим>) – позволяет найти запись, соответствующую данному значению <Ключ> ключа по текущему индексу и режиму поиска, переданному в качестве параметра. Указатель устанавливается на найденную запись.

Параметры:

<Ключ> – строковое выражение со значением выражения текущего индекса.

<Режим> – режим поиска записей:

0 – ищет запись на точное соответствие ключу (=);

1 – ищет запись на точное соответствие с ключом или большую (>=);

2 – ищет запись с большим ключом (>);

–1 (минус единица) – ищет запись на точное соответствие с ключом или меньшую(<=);

–2 (минус два) – ищет запись с меньшим ключом (<).

Возвращаемое значение: 1 – если запись найдена; 0 – если запись не найдена.

Пример:

ЗаписьНайдена = ДБФ.Найти("Иванов", 0);

ПолучитьЗначениеПоля(<НазваниеПоля>) – позволяет определить значение поля текущей записи.

Параметры:

<НазваниеПоля> – строковое выражение с названием поля или числовое выражение с номером поля.

Возвращаемое значение: значение поля записи, тип зависит от типа поля.

Пример:

Знач=ДБФ.ПолучитьЗначениеПоля("КП");

УстановитьЗначениеПоля(<НазваниеПоля>, <Значение>) – позволяет установить новое значение поля текущей записи.

Параметры:

<НазваниеПоля> – строковое выражение с названием поля или числовое выражение с номером поля.

<Значение> – значение поля.

Описание:

Пример:

ДБФ.УстановитьЗначениеПоля(НаименованиеПоля, 1234);

Добавить() – добавляет новую пустую запись. Для записи изменений в базу данных необходимо инициировать запись

Пример:

ДБФ.Добавить();

ДБФ.FIELD1 = Поле1;

ДБФ.FIELD2 = Поле2;

ДБФ.Записать();

Скопировать() – добавляет новую запись, копирующую текущую запись. Для записи изменений в базу данных необходимо инициировать запись

Пример:

ДБФ.Скопировать();

ДБФ.Записать();

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

Автосохранение(<Режим>) – позволяет изменить режим автоматического сохранения изменений в базе. При установленном режиме автосохранения любые изменения позиционирования объекта приводит к автоматической записи изменений атрибутов (если они происходили с текущей записью) в базу данных. При сброшенном режиме автосохранения записи при изменении позиционирования не происходит – для этого нужно вызвать метод Записать(), причем до выполнения позиционирования.

Параметры:

<Режим> – необязательный параметр. 1 – установить режим автоматического сохранения изменений в базе. 0 – снять режим.

Возвращаемое значение: текущее числовое значение режима автоматического сохранения изменений в базе (на момент до исполнения метода).

Пример:

ДБФ.Автосохранение(1);

ДБФ.Новая();

ДБФ.FIO = "Иванов";

ДБФ.PHONE = 215;

ДБФ.Новая(); // Произошла запись

ДБФ.FIO = "Петров";

ДБФ.PHONE = 215;

ДБФ.Отменить();

ДБФ.Новая(); // Записи не произошло

ДБФ.Автосохранение(0);

ДБФ.FIO = "Петров";

ДБФ.PHONE = 314;

ДБФ.Записать(); // Произошла запись

ДБФ.Новая();

ДБФ.FIO = "Сидоров";

ДБФ.PHONE = 215;

ДБФ.Новая(); // Записи не произошло

Отменить() – отменяет запись изменения в базу.

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

Пример:

ДБФ.Удалить();

ЗаписьУдалена() – возвращает значение флага пометки текущей записи на удаление.

Возвращаемое значение: 1 – запись помечена на удаление; 0 – запись не помечена на удаление.

Восстановить() – восстанавливает текущую запись, помеченную ранее на удаление.

Пример:

ДБФ.ПоказыватьУдаленные(1);

Если ДБФ.ЗаписьУдалена() = 1 Тогда

ДБФ.Восстановить();

ДБФ.Записать();

КонецЕсли;

Очистить() – обнуляет все поля записи. Атрибуты, соответствующие полям типа строковый приобретают значение «пустая строка», числовой – 0, логический – 0, дата – «пустая дата».

Пример:

ДБФ.Очистить();

КоличествоЗаписей() – возвращает количество записей в базе вместе с записями, помеченными, как удаленные.

Возвращаемое значение: количество записей в базе.

Пример:

Предупреждение("Записей – " + Строка(ДБФ.КоличествоЗаписей()));

КоличествоПолей() – возвращает количество полей базы. Может быть использован при работе с базой данных неизвестной заранее структуры.

Возвращаемое значение: количество полей базы.

ОписаниеПоля(<НомерПоля>, <НазваниеПоля>, <Тип>, <Длина>, <Точность>) – возвращает в параметрах <НазваниеПоля>, <Тип>, <Длина>, <Точность> описание поля с номером <НомерПоля>.

Параметры:

<НомерПоля> – номер поля, для которого требуется получить описание.

<НазваниеПоля> – идентификатор переменной, в которую данный метод вернет строковое значение названия поля.

<Тип> – идентификатор переменной, в которую данный метод вернет числовое значение типа поля. Допустимые значения см. в описании метода ДобавитьПоле().

<Длина> – идентификатор переменной, в которую данный метод вернет числовое значение – общую длину поля.

<Точность> – идентификатор переменной, в которую данный метод вернет числовое значение – длину поля после десятичной точки (только для числовых полей).

Пример:

Для КП = 1 По ДБФ.КоличествоПолей() Цикл

ДБФ.ОписаниеПоля(КП, Назв, Тип, Длин, Точн);

// действия с полем

КонецЦикла;

КоличествоИндексов() – возвращает количество индексов в открытом индексном файле. Может быть использован при работе с базой данных неизвестной заранее структуры.

Возвращаемое значение: количество индексов в открытом индексном файле.

ОписаниеИндекса(<НомерИндекса>, <НазваниеИндекса>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр>) – возвращает в параметрах <НазваниеИндекса>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр> описание индекса с номером <НомерИндекса>.

Параметры:

<НомерИндекса> – номер индекса, для которого требуется получить описание.

<НазваниеИндекса> – идентификатор переменной, в которую данный метод вернет строковое значение названия индекса.

<Выражение> – идентификатор переменной, в которую данный метод вернет строковое значение – выражение индекса.

<Уникальность> – идентификатор переменной, в которую данный метод вернет числовое значение – флаг уникальности индекса. 1 – уникальный. 0 – не уникальный.

<Убывание> – идентификатор переменной, в которую данный метод вернет числовое значение – флаг направления убывания индекса. 1 – индекс по убыванию значения ключа. 0 – по возрастанию значения ключа.

Loading

Календарь

«  Июль 2019  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031

Архив записей

Друзья сайта

  • Заказать курсовую работу!
  • Выполнение любых чертежей
  • Новый фриланс 24