ПЕРЕДАЧА ДАНИХ ІЗ 1С В DBF-файл – ЧАСТИНА 3

якщо докВибран () = 1 тоді

дбфDocName = докВід () дбфDocId = докНомерДок

інакше

дбфDocName = “; дбфDocId = 0

КонецЕсли

дбф3апісать () / / Зберігаємо дані конецЦікла / / Поки

КонецПроцедури / / ПеренестіОклад

Рис 94 Таблиця тЗнач, перетворена в процедурі ДляДБФ

Рис 95 Таблиця тЗнач, перетворена в процедурі ДляДБФ2

Рис 96 Фрагмент файлу employeedbf

Зауваження:

Рис 97 Фрагмент файлу salarydbf

1 Оскільки шлях до файлів не вказаний, то вони будуть створені в каталозі користувача, з якого запускається обробка Проба Імя каталогу повертається вбудованою функцією КаталогПользователя

2 З файлом, на який посилається обєкт XBase, може одночасно працювати тільки один користувач Тому якщо є не дорівнює нулю ймовірність одночасного доступу до одного і того ж DBF-файлу більше одного користувача, то з обєктом XBase потрібно відповідним чином використовувати конструкцію Спроба

932&nbsp АТРИБУТИ І МЕТОДИ ОБЄКТА XBASE

9321&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp АТРИБУТИ ОБЄКТА XBASE

Обєкт XBase має два види атрибутів: поля DBF-файлу і його ключі

Атрибут Поле дозволяє по імені поля читати і змінювати значення поля поточного запису DBF-файла Число таких атрибутів дорівнює числу полів файлу, на який посилається обєкт XBase

ПрикладУ вікні повідомлень виводиться значення поля Name 3-й запису файлу ет ployeedbf Відповідно до рис 96 в цьому полі зберігається рядок Агальцов Юрій Олексійович Потім змінюється значення 6-й запису файлу employeedbf

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба перем ДБФ, ін

ОчістітьОкноСообщеній ()

ДБФ = СоздатьОбект (ХВазе) дбфОткритьФайл (emplоуееdbf) якщо дбфОткрита () = 0 тоді

Попередження (Немає файлу employeedbf в каталозі користувача немає”) повернення

КонецЕсли

/ / Переміщаємося на третій запис файлу employeedbf

/ / Після того як файл відкритий, він позиціонується на своєму першому записі дбфПерейті (3)

, Повідомити (дбфName) / / Надрукував Агальцов Юрій Олексійович

/ / Переміщаємося на шосту запис файлу employeedbf дбфПерейті (6)

ДБФ-Name = Бараненко Іван Несторович;

дбф3апісать () / / Не забуваємо записати зміни у файл Попередження (Готово”)

КонецПроцедури / / Виконати

Зауваження    Файл employeedbf змінювався при закритому індексному файлі ет ployeecdx, тому індекси цього файлу, в які входить в якості вираження імя поля Name, не відповідають повною мірою файлу employeedbf Отже, для пошуку за індексом файл employeecdx необхідно попередньо переіндексувати

Атрибут Ключ є обєктом агрегатного типу Число компонентів обєкта дорівнює числу полів DBF-файлу, на який посилається обєкт XBase Імя компоненту атрибута Ключ складається за такою схемою:

дбфКлюч <імя поля DBF-файлу>

Атрибут застосовується для завдання значень, що вживаються при обчисленні індексного вираження Отримане значення індексного виразу використовується методом НайтіПоКлючу в якості ключа пошуку Цей метод здійснює пошук по поточному індексом, застосовуючи як ключа вираз, складене з значень компонентів атрибута Ключ Наприклад, з файлом employeedbf використовується індекс

Depart, який вираховується за висловом TRIM (STR (ParentId)) + Name Щоб задати це вираження в програмі 1С, необхідно визначити два компоненти ключа: К л ю ч P a r e n t I d і КлючName

Приклад 1Задаються ключі, що забезпечують отримання значення індексного виразу індексу Depart, рівне 12Бараненков

дбфКлючParentId = 12 / / Значення для TRIM (STR (ParentId))

дбфКлючName = Бараненко; / / Значення для Name

/ / Індексний вираз TRIM (STR (12)) + Бараненко поверне 12Бараненков

Приклад 2У файлі employeedbf шукається за індексом Name, індексне вираз якого одно Name (див процедуру СоздатьСотр в розд 9312), ключ, рівний Агальцов Юрій Олексійович

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба перемдбф

ОчістітьОкноСообщеній () ДБФ = СоздатьОбект (ХВаве) дбфОткритьФайл (етр1оуееdbf, employeecdx) якщо дбфОткрита () = 0 тоді

Попередження (Немає файлу employeedbf та / або файлу employeecdx

| В каталозі користувача немає ) повернення

КонецЕсли

дбфТекущійІндекс (Name)

дбфКлючName = Агальцов Юрій Олексійович; дбфНайтіПоКлючу (1)

Повідомити (дбфName) / / Надрукував Агальцов Юрій Олексійович КонецПроцедури / / Виконати

Зауваження   При такому використанні методу НайтіПоКлючу можна задати неповне значення ключа, наприклад

дбфКлючName = Ага; дбфНайтіПоКлючу (1)

Повідомити (дбфName) / / Надрукував Агальцов Юрій Олексійович

Приклад 3 У файлі employeedbf шукається за індексом Depart, індексне вираз якого одно TRIM (STR (ParentId)) + Name (див процедуру СоздатьСотр в розд 9312), Ключ, рівний TRIM ((STR (12)) + Бараненко .

Процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба перем ДБФ

ОчістітьОкноСообщеній ()

ДБФ = СоздатьОбект (ХВasе) дбфОткритьФайл (етр1оуееdbf, employeecdx ) якщо дбфОткрита () = 0 тоді

Попередження (Немає файлу employeedbf та / або файлу employeecdx

| В каталозі користувача немає ) повернення

дбфТекущійІндекс (Depart)

дбфКлючParentId = 12 / / Значення для TRIM (STR (ParentId)) дбфКлючName = Бараненко; / / Значення для Name дбфНайтіПоКлючу (1) / / Ключ дорівнює 12Бараненков Повідомити (дбфName) / / Надрукував Бараненко Іван Несторович

КонецПроцедури / / Виконати

9322 МЕТОДИ ОБЄКТА XBASE

Приводяться в табл 96

Методи обєкта XBase

Таблиця 96

Метод

Опис

дбфСоздатьФайл (DBFфайл, [СDХфайл])

Створює файл бази даних (DBF-файл) і, якщо задано другий параметр, індексний файл (CDX-файл) Імена файлів задаються символьними параметрами DBFфайл і СDХфайл Якщо імя не містить шляху, то файли будуть створені

в каталозі користувача Якщо файли з зазначеними

іменами на диску є, то вони будуть замінені на нові

дбфОткритьФайл (DBFфайл, [СDХфайл], [флагЧтенія])

Відкриває DBF-файл і, якщо задано другий параметр, індексний файл Тип параметрів DBFфайл і СDХфайл символьний Файли відкриваються тільки для читання, якщо флагЧтенія = 1, і доступні для редагування, якщо флагЧтенія = 0 Типово флагЧтенія = 0

прапор = дбфОткрита ()

Поверне 1, якщо DBF-файл відкритий, або 0-в іншому випадку

дбфЗакритьФайл ()

Закриває раніше відкритий або створений DBF-файл Ігнорується, якщо DBF-файл не був відкритий або створений до вживання методу DBF-файл при нормальному завершенні програми буде закрито, і без виклику методу

дбфОчістітьФайл ()

Виконує фізичне видалення всіх записів DBF-файла Після виконання методу видалені записи відновити не можна

дбфСжать ()

Видаляє фізично записи DBF-файлу, що мають позначку видалення

дбфПереіндексіровать ()

Виконує переіндексацію індексного файлу Застосовується для відновлення порядку проходження записів в індексному файлі, який може бути порушений при аварійному завершенні програми або при модифікації DBF-файлу при закритому індексному файлі

режімТек = дбфПоказивать Дистанційні ([Режим])

Встановлює режим доступу до записів, які мають позначку видалення Якщо режим = 1, то такі записи доступні, і недоступні, якщо режим = 0 Типово режим = 0 Повертає поточне значення режиму

Метод

Опис

прапор = ДбфПервая ()

Переміщує DBF-файл на перший запис Якщо заданий поточний індекс, то перший є запис, що відповідає при зростаючому індексі його найменшому значенню або найбільшому при спадному індексі Поверне 1 у разі успіху або 0 при невдачі

прапор = ДбфПоследняя ()

Переміщує DBF-файл на останній запис Якщо заданий поточний індекс, то останньої є запис, що відповідає при зростаючому індексі його найбільшим значенням або найменшому при спадному індексі Поверне 1 у разі успіху або 0 при невдачі

прапор = ДбфСледующая ()

Переміщує DBF-файл на наступний запис Якщо заданий поточний індекс, то порядок записів визначається цим індексом Поверне 1 у разі успіху або 0 при невдачі

прапор = ДбфПредидущая ()

Переміщує DBF-файл на попередню запис Якщо заданий поточний індекс, то порядок записів визначається цим індексом Поверне 1 у разі успіху або 0 при невдачі

нЗап = ДбфНомерЗапісі ()

Повертає номер запису DBF-файла Поверне 0, якщо файл позиціонується перед першим або слідом за останнім записом

дбфПерейті (нЗап)

Переміщує DBF-файл на запис, що має номер нЗап Методу завжди доступні записи, що мають позначку видалення Якщо нЗап < 0 або нЗап > дбфКолічествоЗапісей (),

то виникне інформаційна помилка

прапор = ДбфВКонце ()

Поверне 1, якщо DBF-файл знаходиться слідом за своєю останнім записом, або О-в іншому випадку

прапор = дбфВНачале ()

Поверне 1, якщо DBF-файл знаходиться перед своєю першою записом, або О-в іншому випадку

імяІндТек = ДбфТекущій Індекс ([ІмяІнд])

Встановлює, якщо заданий параметр імяІнд, поточний індекс Повертає значення поточного індексу до виклику методу Параметр імяІнд і результат мають символьний тип

прапор = дбфНайті

(Ключ, [режим])

Шукає ключ, використовуючи поточний індекс Поверне 1 у разі успіху або 0 при невдачі При успішному пошуку позиціонує файл на знайденій запису Якщо числовий параметр режим є:

• 0, то шукається запис, індексне вираз якої точно одно ключу

• 1, то шукається запис, індексне вираз якої більше або дорівнює ключу

• 2, то шукається запис, індексне вираз якої більше ключа

• -1, То шукається запис, індексне вираз якої менше або дорівнює ключу

• -2, То шукається запис, індексне вираз якої менше ключа

За замовчуванням режим = 0 Використовується для простих індексів

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*