Имя: Пароль:
1C
1С v8
Выгрузка в фал dbf
, , ,
0 1c_solop
 
23.12.19
11:25
Первый раз пишу выгрузку в файл dbf.
После каждого добавления записываю файл в цикле.
Если не записывать после каждого добавления появляется только одна строка.
Строк очень много. Есть другой вариант более быстрый?
1 ДенисЧ
 
23.12.19
11:26
Не использовать dbf - не ghtlkfufnm&
2 SSSSS_AAAAA
 
23.12.19
11:28
(0) Ты еще не показал свой чтобы можно понять о чем идет речь и с чем сравнивать.
3 dmpl
 
23.12.19
11:30
(0) Куда потом будешь грузить файл?
4 trooba
 
23.12.19
11:39
(0) Не нужно каждый раз записывать
5 1c_solop
 
23.12.19
11:44
НовыйФайл = Новый XBase;
//Определяем кодировку нового файла. Существует кодировка для Windows – ANSI и OEM предназначенная для DOS;

НовыйФайл.Кодировка = КодировкаXBase.ANSI;
//Необходимо описать все колонки будущего файла DBF, указав их тип;

НовыйФайл.Поля.Добавить("obj","S",100);
НовыйФайл.Поля.Добавить("obj1","S",100);
НовыйФайл.Поля.Добавить("date","D",100);
НовыйФайл.Поля.Добавить("q","N",4);
НовыйФайл.Поля.Добавить("art","S",100);
НовыйФайл.Поля.Добавить("id_doc","S",100);
НовыйФайл.Поля.Добавить("c_oper","S",100);
НовыйФайл.Поля.Добавить("s","N",15.2);
//Укажем каталог, в котором будет происходить создание DBF и запишем итоговый файл.

Путь = ОбъектС.Путь+"\Clients.DBF";
НовыйФайл.СоздатьФайл(Путь);
//НовыйФайл.Добавить();
ДЛЯ КАЖДОГО стр из объектС.Движения цикл
НовыйФайл.Добавить();
ЗаполнитьЗначениясвойств(НовыйФайл,стр);
НовыйФайл.c_oper=Стр.c_oper;;

НовыйФайл.Записать();
КонецЦикла;
6 Кирпич
 
23.12.19
11:47
Может поможет

XBase (XBase)
АвтоСохранение (AutoSave)
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак автоматического сохранения изменений в базе данных.
Истина - выполняется автоматическое сохранение изменений.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.
7 Михаил Козлов
 
23.12.19
12:06
Не смущает: ЗаполнитьЗначениясвойств(НовыйФайл,стр);?
8 1c_solop
 
23.12.19
14:01
Не смущает. Поля в запросе сходятся с колонками таблицы
9 Гость из Мариуполя
 
гуру
23.12.19
14:02
НовыйФайл.Поля.Добавить("date","D",100);

???
10 PuhUfa
 
23.12.19
14:08
(8) И с чего ты решил, что ЗаполнитьЗначениясвойств будет заполнять именно последнюю добавленную строку в файле?
11 Алексей_Р
 
24.12.19
09:25
XBase (XBase)
УстановитьЗначениеПоля (SetFieldValue)
Синтаксис:
УстановитьЗначениеПоля(<ИмяПоля>, <Значение>)
Параметры:
<ИмяПоля> (обязательный)
Тип: Число, Строка.
Имя или индекс поля. Индекс полей начинается с 0.
<Значение> (обязательный)
Тип: Число, Строка, Дата, Булево.
Значение поля.
Описание:
Устанавливает значение поля по его индексу или имени.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
12 Алексей_Р
 
24.12.19
09:28
ДБФ.СоздатьФайл(ПутьЗаписи);
    для а = 0 по ВыборкаДетальныеЗаписи.Количество()-1 Цикл
        ДБФ.Добавить();
        Для щ = 0 по ВыборкаДетальныеЗаписи.Колонки.Количество()-1 цикл
            ДБФ.УстановитьЗначениеПоля(МассивПолей.Получить(щ), ВыборкаДетальныеЗаписи.Получить(а).получить(щ));
        КонецЦикла;
        
        ДБФ.Записать();
    КонецЦикла;
    ДБФ.ЗакрытьФайл();
Ошибка? Это не ошибка, это системная функция.