"Файл базы данных поврежден" - мой опыт восстановления файла 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С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

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

3600 руб.

10.02.2017    115732    696    176    

736

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

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

14400 руб.

29.04.2020    39111    115    152    

82

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

Вы наконец разобрались с закрытием месяцев и пора начать контролировать сроки оплаты поставщикам и задолженности клиентов, но в базе расчеты не идут из-за развернутого сальдо? Не беда, есть решение!

12000 руб.

02.11.2020    8378    6    3    

9

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

Обработка для диагностики и устранения ошибочных состояний ключей аналитики при использовании новой методики раздельного учета НДС в "Бухгалтерии предприятия ред. 3.0"

6000 руб.

27.01.2015    58673    31    14    

40

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

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    52707    181    29    

133

Печатные формы Корректировка данных Учет документов 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 3.0

Данная обработка позволяет работать со справками об оплате медицинских услуг в любой конфигурации 1С 8.3 Решение выполнено в виде внешней обработки, поэтому будет работать так же на базовых версиях конфигураций 1С, где нет возможности добавить расширение.

3600 руб.

28.01.2025    1105    0    0    

2

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

Обработка предназначена для ООО для смены системы налогообложения УСН на ОСНО, без ведения раздельного учета, входящего НДС по способам учета. При реализации перехода в операции формируются проводки по выделению НДС, который ранее учитывался в стоимости номенклатуры, регистр «НДС Предъявленный».

7200 руб.

22.01.2025    2199    5    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 406 06.10.12 04:44 Сейчас в теме
(2) Да, утилиты типа chdbfl и Toll_1CD несомненно облегчают решение проблем в лечении баз, но бывают случаи, когда они просто не могут открыть битую базу, как в моем случае. Конечно, моя ситуация - это частный случай, но если бы проблемы не были бы до конца решены, то конечно далее я бы использовал именно эти утилиты.
3. CXY 406 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 406 08.10.12 02:38 Сейчас в теме
(8)После всех своих манипуляций я проверил базу через "Тестирование и исправление" в Конфигураторе - никаких проблем не выявлено. Но чтобы уж точно подстраховаться от всех неожиданностей, я выгрузил из битой базы то, что мне нужно и загрузил в бэкап. Это действие, если проходит без ошибок, точно гарантирует беспроблемность последующей работы.
10. awa 2616 08.10.12 14:01 Сейчас в теме
Первые три скриншота с ошибками явно указывают на отсутствие в самом начале файла базы сигнатуры "1CDBMSV8", однако восстановление почему-то начинается с адресов 0x4000.
Либо часть лечения просто пропущена, либо скриншоты ошибки вообще от другого случая.


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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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