helpf.pro
Регистрация
 +6 
Распечатать

1С 8.x : Опыт восстановления файловой базы 1Cv8.1CD

Именно 13-го июня в первый рабочий день база и слетела. Прямо с утра. При запуске пишет: «Файл базы данных поврежден. 1cv8.1CD» и все тут. Ни в конфигуратор ни в предприятие не пускает.

Последний бэкап понятно как обычно старый, ибо при последнем обновлении 1С рабочую базу перенесли в другую папку, которая соответственно в архив не попадала.

В общем вот исходные данные:

1. 1С 8.2.14.540

2. убитый файл 1Сv8.1CD весом 900 МБ датой от 12.06.2012;

3. рабочий файл 1Сv8.1CD весом 900 МБ датой от 26.04.2012;

На уровне подсознания понятно что из этого что то можно получить но пока не ясно как.

СЛАВА ИНТЕРНЕТУ!!! ИНФОРМАЦИЯ - вот в чем его сила. И пока, но все меньше, свободная (лирическое отступление).

По сути вопроса в Сети достаточно много информации, но все в итоге сводится к махинациям с копированием части исправного файла в убитый. Главный инструмент в данном случае - программка tool_1CD. Огромное спасибо ее автору Валерию (awa)!. Так же очень полезна статья того же автора: Краткое описание формата файлов *.1CD (файловых баз 1Сv8) . Ее пожалуй нужно прочитать перед началом попытки восстановления, тогда понятнее станет что и как делать.

ИТАК:

Первым делом конечно нужно скопировать оба файла (убитый и целый) куда нибудь подальше чтобы не потерять их исходники. Там мы их не трогаем. Затем скопировать их еще раз в папку где будем проводить эксперименты. Вот тут пожалуйста - издеваемся над ними как хотим ).

Еще до поиска в Сети пришла в голову мысль воспользоваться стандартной утилитой 1С CHDBFL.EXE для проверки и исправления файла базы.

После исправления этой утилитой 1С при загрузке стала ругаться на отсутствие таблицы _SYSTEMSETTINGS и кроме того размер файла базы сократился в 2 раза до 450 МБ. Очень странные результаты - хотя по отзывам данная утиль довольно грубая и помогает далеко не всегда, а иногда и усугубляет ситуацию (.

Ладно, заменяем жертву эксперимента файлом из «резервного хранилища».

Теперь читаем статью по формату 1Cv8.1CD и проникаемся. Ага, теперь более-менее понятно для чего и как можно использовать программу tool_1CD. Запускаем 2 экземпляра:

1.с убитым файлом:

2. с целым файлом:

Блин, ну сразу видно что 4-х таблиц не хватает. Каких -легко определить ибо порядок размещения одинаков. Таким образом у меня порушились:

- _SYSTEMSETTINGS;

- _COMMONSETTINGS;

- _REPSETTINGS;

- _FRMDTSETTINGS.

Тут я понял что дело не так уж плохо - ведь пропали только системные таблицы, которые по логике вещей и не изменились с последнего бэкапа. Ура!!!!!. Но тут конечно кому как повезет(((.

Ну вот теперь мы знаем что файл 1Cv8.1CD структурирован и хранит в себе описание и содержимое всех таблиц, а в начале файла есть основная секция где указано размещение этих таблиц.

Тут нам без HEX-редактора не обойтись. А сейчас что-то мало бесплатных то ((((. А у меня еще с давних темных времен припасена коллекция редакторов и дебаггеров. Уж и не помню для чего)))).

Ну все - запускаем HEX-Assistant и снова открываем в нем оба наших подопытных файла:

Для тех, кто внимательно прочитал статью не секрет, что блок, где хранится размещение таблиц №2 и найти его можно по смещению 0х4000:

Вот она, вот она рыба моей мечты !!! . В tool_1CD таблицы расположены в том же порядке что и в файле пэтому мы легко находим смещения для недостающих у наc таблиц:

_SYSTEMSETTINGS = 0x0000E61C

_COMMONSETTINGS = 0x0000E65C

_REPSETTINGS = 0x0000E66F

_FRMDTSETTINGS = 0x0000E683

Так же видим что смещения одинаковы в обоих файлах. Это значит, что все вообще просто:

1. идем по указанному смещению в целом файле;

2. выделяем полностью фрагмент кода с начального смещения данной таблицы до начального смещения следующей;

3. копируем с заменой в убитый файл точно на те же адреса.

4. сохраняем изменения в бывшем убитом файле.

5. проверяем tool_1CD что таблицы появились. Прога ругаться может на индексы, но они после восстановятся.

6. (по своему усмотрению) прогоняем утилитой CHDBFL.EXE (она там поругается немного, можно не обращать внимания).

или

запускаем конфигуратор - тестирование и исправление

или

делаем выгрузку-загрузку.

Я на всякий случай сделал все .

Все. Время принимать поздравления и обещания расцеловать от бухгалтерии и наставления от начальства по поводу необходимости ежедневного архивирования. В который раз ))))).

Автор: Voland - Источник

Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 51401
 +6 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1Cv8.1CD - Файл данных достиг максимального размера! 9
1С выдает предупреждение " Файл данных достиг максимального размера" . Подскажите из - за чего это и как можно решить ? Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
Excel файл как Внешний источник данных 17
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.