XBase не все строки не записывает. #653842


#0 by ГдеСобакаЗарыта
Делаю выгрузку в ДБФ. Код такой. Многоточием пропущены не относящиеся к делу участки кода ...     Для Каждого СтрТабДок Из ЭтотОбъект.ТабДок Цикл Не записывается последняя строка Табличной части некоторых документов. Из 100 доков ~ в 15 не будет будет хватать посл. строки в ДБФ-файле. Причем это все рандомно. Если убрать первый ДБ.Записать; то вообще почти все доки будут выгружены без последней строки ЧЯДНТ?
#1 by 1Сергей
//ДБ.АвтоСохранение = Истина;
#2 by NS
Сделай ДБ.Записать; после добавления каждой записи.
#3 by NS
А как ты узнал что нет последней строчки? Каким кодом? ИМХО ошибка у тебя не в записи, а в чтении.
#4 by pumbaEO
Межу этими строками Для Каждого СтрТабДок Из ЭтотОбъект.ТабДок Цикл    ...
#5 by ГдеСобакаЗарыта
Визуально проверял). Ну и кодом тоже. Счетчик сравнивал в ДБ.КоличествоЗаписей. Продолжить; нет
#6 by ГдеСобакаЗарыта
Так ваще по одной строке на документ
#7 by NS
ДБ.Записать перед первым Конеццикла добавь.
#8 by ГдеСобакаЗарыта
, Так уже лучше. Все записи кроме первой. Что с первой не так?
#9 by NS
Чем смотришь? Как узнал что первой нет?
#10 by Oleg_Kag
мням... массив строк начинается с нуля... там ни где нету индексов?
#11 by Mafoni
ИМХО - добавь в этот кусок Для Каждого СтрТоваров Из ТаблицаТовары Цикл таким образом ты увидиш те у тя проблема при выборке данных или при запихивании в DBF и еще момент - если я пишу - ДБ.АвтоСохранение = Истина;   то ДБ.Записать; делаю один раз в конце процедуры
#12 by ГдеСобакаЗарыта
А нет, все норм. Проверял ДБ.КоличествоЗаписей почему то сообщает на единицу меньше. А записи все в файле присутствуют. А это нормально на каждую запись делать ДБ.Записать? В клюшках вроде одного раза хватало в конце формирования файла
#13 by Mafoni
а вообще покажи полный код - думаю проблема де то там
#14 by Mafoni
- смотри
#15 by ГдеСобакаЗарыта
+12 и это с ДБ.АвтоСохранение = Истина;
#16 by ГдеСобакаЗарыта
А если ДБ.АвтоСохранение = Истина; убрать, то 0 записей в файле
#17 by Mafoni
если убрать  ДБ.АвтоСохранение = Истина; то после каждого ДБ.Добавить; необходимо сделать ДБ.Записать;
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С