"Файл базы данных поврежден" - мой опыт восстановления файла 1CD

04.10.12

Задачи пользователя - Корректировка данных

Хочу поделиться собственным опытом восстановления базы 1С. Кое-какие знания по проблеме я получил из форумов на Инфостарте, но кое-что пришлось додумывать самому. Но в результате база, которая не открывалась ни в Конфигураторе, ни во внешней утилите chdbfl, ни в программе Tool_1CD (первые четыре скриншота), в итоге была в моем случае ПОЛНОСТЬЮ ВОССТАНОВЛЕНА.

Надеюсь, мой опыт кому-то поможет при решении аналогичной проблемы.

Итак, изложу перечень своих проделанных действий по шагам:

1) Установил и запустил программу HxD, которая имеется в свободном доступе в Интернет, на русском языке (она очень удобна для очень больших баз, работает достаточно быстро);

2) В программе открыл битую базу, а также базу из бэкапа (к сожалению, довольно старого), разместил их мозаикой для удобства;

3) Нахожу смещение 00004000, где хранится параметр локализации, см. скриншот 5, исправляю его так, как в бэкапе;

4) Далее я вижу, что изменены данные в строках 00004020 и 00004030, исправляю их так, как должно быть, см. тот же скриншот, потом дальше иду вниз по строкам и вижу, что данные совпадают;

5) В строке 00004020 видно, что таблица CONFIG (в которой хранится описание базы данных), начинается с строки 00005000 (скорее всего у всех так), а вот заканчивается она у всех по разному. Чтобы узнать, где она заканчивается, в строке 00004020 надо считать 9,10,11,12 группу чисел-букв слева направо и прочитать эту группу чисел-букв справа налево. У меня выглядит вот так: 84 22 00 00, см. скриншот 6, 7. Это означает, что таблица CONFIGSAVE (следующая за таблицей CONFIG) начинается со строки 02284000 (таблица CONFIGSAVE не должна обязательно начинаться со слова CONFIGSAVE);

6) Копирую таблицу CONFIG со строки 00005000 по строку 02284000 (не включая эту самую строку, поскольку она принадлежит уже следующей таблице CONFIGSAVE) бэкапа в битую базу таблицы CONFIG со строки 00005000 по строку 02284000 (в редакторе: "скопировать и потом "вставить с заменой"). Результат изменений сохраняю;

7) Захожу в режим 1С Предприятие и открываю базу, как обычно.

 

P.S. Несмотря на то, что исправленная база прошла без ошибок "Тестирование и исправление базы" в Конфигураторе, я все же подстраховался и выгрузил из нее нужные мне данные обработкой ВыгрузкаЗагрузкаДанныхXML81(82).epf, которая входит в комплект поставки конфигурации Конвертация данных, а затем загрузил эти данные в бэкап, получив рабочую базу.

P.P.S. Конечно, лучше избегать подобных проблем путем регулярного сохранения бэкапов...

См. также

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32708    106    152    

73

SALE! 20%

Корректировка данных Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 2880 руб.

10.02.2017    110543    662    174    

702

Корректировка данных Зарплата Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    4038    35    17    

44

Закрытие периода Корректировка данных Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

4800 руб.

27.10.2021    23933    241    35    

78

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Обработка предназначена для корректировки входящего НДС при смене системы налогообложения индивидуального предпринимателя с УСН на ОСНО в 1С:Бухгалтерия предприятия 3.0

4000 руб.

18.07.2024    690    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. root901 04.10.12 19:33 Сейчас в теме
2. Agema 04.10.12 21:10 Сейчас в теме
Спасибо! буду иметь ввиду такой вариант восстановления базы. Сегодня прислали базу, с припиской, что ничем не могут исправить выгрузку, хотя и работает и обновляется, НО не выгружается и не тестируется (вылетает). Помог chdbfl.exe.
Кстати, вот Страница загрузки HxD v1.7.7.0 (03 Apr 2009)
6. CXY 398 06.10.12 04:44 Сейчас в теме
(2) Да, утилиты типа chdbfl и Toll_1CD несомненно облегчают решение проблем в лечении баз, но бывают случаи, когда они просто не могут открыть битую базу, как в моем случае. Конечно, моя ситуация - это частный случай, но если бы проблемы не были бы до конца решены, то конечно далее я бы использовал именно эти утилиты.
3. CXY 398 05.10.12 05:07 Сейчас в теме
Забыл указать еще один нюанс. В битом файле и файле бэкапа могут быть разные размеры таблицы CONFIG. Это может быть связано с тем, что были внесены изменения в конфигурацию. Тогда, если в битом файле будет возможно определить конец таблицы CONFIG (т.е. в смещении 4020 информация не будет затерта, и ее можно будет считать, в моем случае это было сделать нельзя), то при копировании таблицы CONFIG из бэкапа может остаться место до конца таблицы в битом файле. Так вот эти оставшиеся биты до конца таблицы надо ЗАПОЛНИТЬ НУЛЯМИ. В этом случае при запуске 1С: Предприятие конфигурация будет такая же, как в бэкапе, но с последними данными.
4. KliMich 05.10.12 10:42 Сейчас в теме
Спасибо! Приму "на вооружение"
5. пользователь 05.10.12 16:49
Сообщение было скрыто модератором.
...
7. Spas12 06.10.12 17:56 Сейчас в теме
За тему спасибо. Былабы эта тема немного на месяц пораньше пораньше тогда б быллобы всё гуд.
8. Shade 2 07.10.12 15:48 Сейчас в теме
Спасибо за ценный опыт :)
А точно ничего этим не портится?
9. CXY 398 08.10.12 02:38 Сейчас в теме
(8)После всех своих манипуляций я проверил базу через "Тестирование и исправление" в Конфигураторе - никаких проблем не выявлено. Но чтобы уж точно подстраховаться от всех неожиданностей, я выгрузил из битой базы то, что мне нужно и загрузил в бэкап. Это действие, если проходит без ошибок, точно гарантирует беспроблемность последующей работы.
10. awa 2610 08.10.12 14:01 Сейчас в теме
Первые три скриншота с ошибками явно указывают на отсутствие в самом начале файла базы сигнатуры "1CDBMSV8", однако восстановление почему-то начинается с адресов 0x4000.
Либо часть лечения просто пропущена, либо скриншоты ошибки вообще от другого случая.


Вынужден извиниться, я поспешил с выводами.
11. CXY 398 08.10.12 15:56 Сейчас в теме
(10) Прилагаю скриншот сравнения двух баз, начало файла. Выводы делайте сами...
Прикрепленные файлы:
12. awa 2610 08.10.12 16:22 Сейчас в теме
(11) Сорри, был не прав. Сообщение Tool_1CD "База не является информационной базой" означает, что в базе нет ни одной из таблиц CONFIG, CONFIGSAVE, PARAMS, FILES и DBSCHEMA, а не об отсутствии сигнатуры.
13. CXY 398 08.10.12 16:31 Сейчас в теме
(12) Начал я лечение базы с адреса 0x4000 потому, что здесь и нашел параметр локализации (ru_ru), а именно этот параметр 1С не нашла при запуске и выдала сведения об ошибке.

P.S. Вам большой респект за утилиту Tool_1CD, очень полезная утилита, теперь держу постоянно при себе,
на всякий случай...
14. vde69 925 09.10.12 00:06 Сейчас в теме
Открытый проект по сабжу

кто хочет (и имеет опыт и желание) может присоеденится :)
15. vde69 925 09.10.12 08:31 Сейчас в теме
(0) данный способ я-бы не стал рекламировать, поднимать из копии фрагмент корневого - это не правильно (хотя в данном случае и прокатило), правильно будет полная перегенерация корневого. Для этого ищутся все внутрение файлы и по ним строим.... Даже если мы поднимем "мусорную" таблицу - это не страшно, выгрузка хмл будет нормально работать и при переносе в чистую выгрузится только то что нужно.


(0) кстати я эту базу получил от Романа, соответсвенно начало моего ответа (13 числа):

>>>у тебя забит нулями небольшой кусочек каталога корневого обьекта, с 4000h по 4040h
>>>
>>>это точно подлежит востановлению

Как я понимаю Вы знакомы :)))
Кстати по моему мнению сама 1с не могла испортить так корневой


(12)Tool_1CD без корневого не работает, кстати давай собери волю в кулак и доделай описание формата (про индексы), а то сейчас у меня только одна стратегия - грохать индексы :)
16. CXY 398 09.10.12 15:01 Сейчас в теме
(15) Здравствуйте, vde69. Ваш комментарий меня заинтересовал в таком ключе:

"(0) кстати я эту базу получил от Романа, соответсвенно начало моего ответа (13 числа):

>>>у тебя забит нулями небольшой кусочек каталога корневого обьекта, с 4000h по 4040h
>>>
>>>это точно подлежит востановлению

Как я понимаю Вы знакомы :)))
Кстати по моему мнению сама 1с не могла испортить так корневой"

На самом деле база была разрушена 28 сентября 2012 года в одном розничном магазине, последний раз
я проводил профилактическое обслуживание 8 сентября 2012 (и все там было нормально). Затем наша фирма прекратила обслуживание данного магазина из-за денежных разногласий. Вместо меня действительно пришел
на обслуживание магазина Роман, но мы с ним абсолютно незнакомы. Но Роман ничего с базой сделать не смог, в итоге вызвали меня. В результате 4 октября в 14-00 база мною была восстановлена (до этого ночью пришлось как следует поработать, потому что я далеко не такой специалист, как Вы в части восстановления баз 1С :). Но у меня теперь к Вам такой вопрос: что же Вы могли обсуждать с Романом 13 числа?
17. vde69 925 09.10.12 15:27 Сейчас в теме
(16)видимо единичка примазалась, мое письмо было 3 октября 2012, 14:302

кстати про "финансовые разногласия" - охотно верю, владельцы базы явно "экономные"

Но и с другой стороны если Вы обслуживали, то должны понимать что если база 1.6 гига жмется до 200 метров в архиве - то нужно обслуживание, да и отсутствие свежих бекапов это то же Ваша вина :)

А за то, что не потерялись и востановили - однозначно Вам респект.

зы
и все-же я остаюсь при своем мнение "сама 1с не могла так испортить корневой"
18. CXY 398 10.10.12 03:41 Сейчас в теме
(17) Бэкапы были, система их автоматического создания была настроена. Вот только последний бэкап был создан 10 сентября, а потом похоже на сервере был просто "убит" процесс, который за это и отвечал. 3 октября, когда я в магазине забирал базу для восстановления, так оно и было...
Что касается изменений в корневом - Ваше неоднократно высказанное мнение мне понятно... Я тоже задаюсь этим вопросом (у меня несколько версий). Для расстановки всех точек над "i" скажу, что например мне подобное сделать даже в голову не придет (я думаю, Вы понимаете, почему).
19. angele 10.10.12 10:45 Сейчас в теме
Очень полезный опыт. Когда-то была такая ситуация, но как лечил не помню, поэтому и опытом поделиться не могу. +1
20. Spartyxa 08.06.17 17:06 Сейчас в теме
Всем здравствуйте!

Если есть желающие повторить подвиг автора (ему вроде бы личным сообщением отправлял тоже запрос) с нашей "умершей" базой за разумное вознаграждение, будем неимоверно рады
Оставьте свое сообщение