Восстановить DBF файл

1. Lenten 25 13.11.17 13:29 Сейчас в теме
Добрый день.
При обмене соответствие объектов хоронится в dbf файле. И этот самый файл накрылся.
Как можно понять какая часть файла битая? он нормально открывается и копируется
По теме из базы знаний
Найденные решения
57. Lenten 25 14.11.17 13:21 Сейчас в теме
(54) автору помогло снизить количество строк в файле. Теперь обмен заработал
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. independ 1521 13.11.17 13:50 Сейчас в теме
(1) пользуюсь этой утилитой
Прикрепленные файлы:
DBFRECOVER.rar
s_tagil@mail.ru; Lenten; +2 Ответить
3. Lenten 25 13.11.17 15:04 Сейчас в теме
58. lpopodina 01.12.21 05:16 Сейчас в теме
Супер! Спасибо. восстановила dbf файл VFP9 за минуту
9. sssss_aaaaa_2011 13.11.17 15:23 Сейчас в теме
(1) Что значит "накрылся" при том, что
(1)
он нормально открывается и копируется
? Открывается чем? Как? Структуру его вы знаете?


ps: слова "хоронится" и "хранится" имеют сильно разный смысл.
11. Lenten 25 13.11.17 15:26 Сейчас в теме
(9) открывается экселем и прочими программами для чтения dbf.
а вот при самом обмене в 1с вылетает ошибка
4. Lenten 25 13.11.17 15:04 Сейчас в теме
картинка
Прикрепленные файлы:
5. DarkUser 13.11.17 15:05 Сейчас в теме
А у вас dbf файл не вырос ли за пределы своих возможностей? Каков размер файла?
6. Lenten 25 13.11.17 15:12 Сейчас в теме
7. DarkUser 13.11.17 15:18 Сейчас в теме
(6) Переименуйте файл (это должно получиться, иначе файл блокирован), создайте новый файл с таким же именем и расширением (из экселя), скопируйте в новый файл несколько строк из старого файла. Испытайте в работе. Если файл заработает, скопируйте в него остальные строки, если нет, разбираемся дальше.
12. Lenten 25 13.11.17 15:28 Сейчас в теме
(7) а как из экселея можно dbf файл сохранить в dbf формате? там на выбор такого нет
Прикрепленные файлы:
14. sssss_aaaaa_2011 13.11.17 15:33 Сейчас в теме
(12) А ёксель надо пользовать не из последних, а какой-нить старенький.
13. Lenten 25 13.11.17 15:30 Сейчас в теме
(7) при копировании на 15360 строке падает. но если удалить 100 строк посередине, данные сдвинутся, а файл снова падает на 15360 но соответственно другой строке.
15. sssss_aaaaa_2011 13.11.17 15:43 Сейчас в теме
(13) Что говорит об ошибке в проге, читающей файл, а не об ошибке в файле.
16. Lenten 25 13.11.17 15:53 Сейчас в теме
(15) эта прога 1с. а падает на Переиндексировать(). не думаю что вся 1с сломалась
17. DarkUser 13.11.17 15:56 Сейчас в теме
(16) Возможно 1С не хватает памяти на хранение всех объектов соответствия.База файловая, серверная? 32 или 64? Попробуйте посмотреть в диспетчере задач рост памяти 1С при выполнении обмена.
18. sssss_aaaaa_2011 13.11.17 16:05 Сейчас в теме
(16)
падает на Переиндексировать(). не думаю что вся 1с сломалась
А при чем тут ВСЯ 1с? Переиндексация - далеко не вся 1с, а только один из методов XBase.
Падает он чаще всего при упирании в какие-либо ограничения. Места для индексного файла достаточно?
19. Lenten 25 13.11.17 16:06 Сейчас в теме
(18) да. там размеры маленькие совсем. ресурсов на серваке хватает
20. sssss_aaaaa_2011 13.11.17 16:09 Сейчас в теме
21. Lenten 25 13.11.17 16:11 Сейчас в теме
(20) да . много раз обмены делали.
тут мне кажется дело в количестве строк. но почему 15360 не ясно.
может дело в файле индекс
22. sssss_aaaaa_2011 13.11.17 16:16 Сейчас в теме
(21)
может дело в файле индекс
Вот как раз хотел про него спросить. Копия индексного файла есть??
23. Lenten 25 13.11.17 16:27 Сейчас в теме
(22) вот
ts.cdx - индекс
ts.dbf - сам файл
Прикрепленные файлы:
ts.CDX
ts.DBF
24. user856012 13 13.11.17 16:39 Сейчас в теме
(23)
ts.dbf - сам файл
Попорчен заголовок и первая запись, остальное выглядит нормально. Вот результат восстановления утилитой WinDBFview от "Гэндальфа", если надо, то ею можно отредактировать или удалить сбойную запись.
Прикрепленные файлы:
ts.DBF
26. Lenten 25 13.11.17 16:57 Сейчас в теме
(24) в файле и правда есть 2 битые строки. но дело имхо в размере и индексе. ща начальник сделал пустой файл с 15360 строками и он тоже сломался при переиндексации
28. user856012 13 13.11.17 17:02 Сейчас в теме
(26)
начальник сделал пустой файл с 15360 строками и он тоже сломался при переиндексации
У вас в (4) сообщение об ошибке создания временного файла - ни о чем не говорит?

Проверяйте свободное место, и не только на диске с базой, но и на системном.
30. Lenten 25 13.11.17 17:08 Сейчас в теме
(28) 280 ГБ свободного места на C
8. user861559 13.11.17 15:22 Сейчас в теме
Доброго дня. Вышлите мне попробую восстановить muhinalex1975@mail.ru
10. Lenten 25 13.11.17 15:26 Сейчас в теме
25. user861559 13.11.17 16:50 Сейчас в теме
там не индекс, а сам файл поломался.
27. independ 1521 13.11.17 17:01 Сейчас в теме
В сбойном файле 18566 записей, в восстановленном 18564
Прикрепленные файлы:
_ts.DBF.zip
29. Lenten 25 13.11.17 17:05 Сейчас в теме
(27) восстановленный тоже не работает
31. user856012 13 13.11.17 17:23 Сейчас в теме
(29)
восстановленный тоже не работает
Значит, дело было не в бобине файле.

(30)
280 ГБ свободного места на C
Ну, ждем телепата, который угадает - что там у вас творится?

Для начала - что с чем обменивается? Подозреваю, что не обошлось без гениальной самописки.
32. Lenten 25 13.11.17 17:29 Сейчас в теме
вот новый файл с таким количество строк. при его переиндексации тоже вылезает ошибка
Это вообще новый файл

вот код, на котором вышибает

БД_ТС = Новый XBase;
ФайлБД_ТС = Новый Файл(ИмяФайла);
ФайлИндексовБД_ТС = Новый Файл(ИмяФайлаИндексов);

Если ФайлИндексовБД_ТС.Существует() Тогда
БД_ТС.ОткрытьФайл(ИмяФайла, ИмяФайлаИндексов, Ложь);
Иначе
БД_ТС.ОткрытьФайл(ФайлТС,, Ложь);
БД_ТС.индексы.Добавить("IndSource", "ID_Source", Истина);
БД_ТС.индексы.Добавить("IndReceive", "ID_Receive", Истина);

Если НЕ БД_ТС.СоздатьИндексныйФайл(ИмяФайлаИндексов) Тогда
Возврат;
КонецЕсли;
КонецЕсли;

БД_ТС.Переиндексировать();
Показать
Прикрепленные файлы:
ts_new.DBF
33. user861559 13.11.17 17:45 Сейчас в теме
Я так понимаю это файловая 1с вер.7.7

ВНИМАНИЕ!!! перед выполнением следующих действий настоятельно прошу скопировать поломанную базу в другой каталог и все действия с базой производить именно на копии.

Есть несколько вариантов решения проблемы:
Вариант: 1
Если есть не очень старая копия базы можно взять из неё этот файл и перезаписать вместо имеющегося.
Вариант: 2
Восстановить этот файл при этом может случиться так что часть данных будет потеряна.

После проведенных манипуляций, ОБЯЗАТЕЛЬНО надо будет провести переиндексацию и произвести тестирование и восстановление средствами 1с. После этих действий необходимо будет проверить, все ли данные восстановились.
35. Lenten 25 13.11.17 17:52 Сейчас в теме
34. user861559 13.11.17 17:46 Сейчас в теме
Новый файл содержит совсем не те данные которые необходимы
36. Lenten 25 13.11.17 17:52 Сейчас в теме
37. user861559 13.11.17 17:59 Сейчас в теме
38. user861559 13.11.17 18:00 Сейчас в теме
а в старом файле заголовок битый по этому ему восстановление не поможет.
39. user861559 13.11.17 18:07 Сейчас в теме
нужен файл из бекапа чтобы правильно восстановить заголовок.
40. Lenten 25 13.11.17 18:39 Сейчас в теме
(39) а как можно заголовок скопировать из архива?
41. DarkUser 13.11.17 18:44 Сейчас в теме
(40) Открой файл в экселе, сохрани в csv, потом из csv импортни в эксель и сохрани в dbf. Заголовки должны поправиться.
42. user861559 13.11.17 18:47 Сейчас в теме
Ни как. можно очистить таблицу и перенести в неё данные из битого файла.
в 33. подходит и для 8.1
43. user861559 13.11.17 18:49 Сейчас в теме
пришлите на почту старую копию этого файла или сюда выложите я организую это дело.
44. Lenten 25 13.11.17 18:52 Сейчас в теме
45. user861559 13.11.17 19:22 Сейчас в теме
44 и с ним база нормально работала?
49. Lenten 25 14.11.17 09:57 Сейчас в теме
(45) да все было нормально. Если порезать файл до 15360 строк (это 2 в 14 степени - 1024. не знаю поможет ли) то все становится нормально. А вот если файл больше, то начинаются проблемы
46. user861559 13.11.17 21:59 Сейчас в теме
если ts архив.DBF правильный то и ts.DBF тоже правильный.
47. user861559 13.11.17 22:27 Сейчас в теме
Вообще в foxpro все файлы отлично открылись с ними нет ни каких проблем. Проблема скорее всего в коде.
48. user861559 13.11.17 22:28 Сейчас в теме
50. user861559 14.11.17 12:16 Сейчас в теме
А какая файловая система на диске в котором создается этот файл?
51. user861559 14.11.17 12:17 Сейчас в теме
Если FAT16 то это ограничение файловой системы.
54. user856012 13 14.11.17 12:53 Сейчас в теме
(51)
Если FAT16 то это ограничение файловой системы.
Вполне может быть, например, если злополучный файл создается на флешке.

А вообще, как я и предсказывал в (31), тема для "Битвы экстрасенсов". Считаю, что автору поможет классическое: "Пригласите специалиста!"
57. Lenten 25 14.11.17 13:21 Сейчас в теме
(54) автору помогло снизить количество строк в файле. Теперь обмен заработал
56. Lenten 25 14.11.17 13:20 Сейчас в теме
52. user861559 14.11.17 12:50 Сейчас в теме
53. user861559 14.11.17 12:52 Сейчас в теме
55. user861559 14.11.17 12:58 Сейчас в теме
просто встроенный в 1C xBase имеет кучу загадочных ограничений. По сему надо работать через ADO.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот