Имя: Пароль:
1C
1С v8
Запись в DBFфайл
0 ВежливаяТварь
 
06.09.12
13:22
Добрый день столкнулся с какой- то мистикой. Есть код:
ФайлИстории.ОткрытьФайл(ПутьКФайлу,,Ложь);
   ФайлИстории.Очистить();
   Для каждого СтрокаТЗ из ИнтерактивнаяТаблица Цикл
       ФайлИстории.Добавить().
       ФайлИстории.Kontragent=СтрокаТЗ.Kontragent;
       ФайлИстории.Dogovor=СтрокаТЗ.Dogovor;
       ФайлИстории.SummaNakl=СтрокаТЗ.SummaNakl;
         ФайлИстории.Plan=СтрокаТЗ.Plan;
         ФайлИстории.Zabrano=СтрокаТЗ.Zabrano;
         ФайлИстории.Comment=СтрокаТЗ.Comment;
   КонецЦикла;
   ФайлИстории.ЗакрытьФайл();

Но при выполнении ошибка {Форма.Форма.Форма(122)}: Ошибка при вызове метода контекста (ОткрытьФайл)
   ФайлИстории.ОткрытьФайл(ПутьКФайлу,,Ложь);
по причине:
Перед выполнением операции нужно закрыть базу

Не подскажите в чем ошибка?
1 ВежливаяТварь
 
06.09.12
13:22
Прошу прощения ошибка такая :{Форма.Форма.Форма(123)}: Ошибка при вызове метода контекста (Очистить)
   ФайлИстории.Очистить();
по причине:
Перед выполнением операции установите объект на запись
2 palpetrovich
 
06.09.12
13:23
файл не занят, в редакторе каком-нить не открыт в этот момент?
3 МишКа
 
06.09.12
13:23
Очистить() очищает(не удаляет) 1(одну) запись.
4 mehfk
 
06.09.12
13:24
XBase (XBase)
Очистить (Clear)
Синтаксис:

Очистить()
Описание:

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

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Пример:

// Очищает значения всех полей первой записи
xB.Первая();
xB.Очистить();
xB.Записать();
5 ВежливаяТварь
 
06.09.12
13:28
А есть метод который очищает весь файл?
6 ВежливаяТварь
 
06.09.12
13:29
(2) Нет не занят проверял в отладчике
7 palpetrovich
 
06.09.12
13:29
(5) ОчиститьФайл
8 МишКа
 
06.09.12
13:29
(5) А ты еще не посмотрел?
9 palpetrovich
 
06.09.12
13:34
вообще-то странно как-то, в СП : // Очищает значения всех полей первой записи
а сейчас проверил - код очищает весь файл
   Если ФайлDBF.Первая() Тогда
       ФайлDBF.Очистить();
   КонецЕсли;
   ФайлDBF.Записать();
10 ВежливаяТварь
 
06.09.12
13:37
(9) я тоже удивился, мне попадался код который методом очистить очищал весь файл.
11 ВежливаяТварь
 
06.09.12
13:37
(7) Спасибо
12 ВежливаяТварь
 
06.09.12
13:47
Да так заработало, всем огромное спасибо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший