Даю свой путь самурая 🙂
То что мне сообщил клиент:
Исходный релиз платформы 8.2.13.219. Текущий релиз платформы 8.2.16.352. Обновил без проблем и реструктуризация прошла успешно. Исходный релиз конфигурации БП 2.0.32.1. Обновлял на релиз 2.0.41.3. В самый ответственный момент вдруг закончилось место на диске.
chdbfl.exe говорит:
Поврежден заголовок файла базы данных Повреждено содержимое внутреннего файлаБаза полностью разрушена восстановление невозможно.
Tool_1CD.exe тоже не помогает…
Для начала я использовал проект http://code.google.com/p/restoration-base-1c8/
Я использовал конфигурацию 0.2.2. (на момент публикации версия не выложена по причине мелких доработок о которых раскажу ниже, выложеная версия 0.1.7 для реального востановления не подходит, слишком много там ошибок, она носит скорее ознакомительный характер)
Для начала переименовал файл и загрузил его, загрузка шла 2 часа (размер файла примерно 1.8 гиг, загрузка идет долго в том числе и по тому что не используется корневой обьект). В процессе загрузки меня обматерило
1. с десяток сообщений типа «Ошибка потока описания таблицы «_REFERENCE54″, Блок 00 00 0F 6C E0 00» на самом деле это ошибка конфигурации востановления, но я быстро понял в чем дело, просто таблицы где описание занимает более одного блока загрузились только по одному, вручную догрузил (поиск по индексу и кнопка «Загрузить данные блока»), ну и после этго на указаной таблице «Загрузить структуру ветки». (Это одна из ошибок которая не дает выложить версию 0.2.2)
2. Более серьезной проблеммой стало сообщение типа «В описании таблицы корневого блока 00 00 67 97 A0 00 есть недопустимые символы».
найдя блок жму «Редактировать таблицу», получаю рис «п-1», видно, что описание таблицы цело просто после него идет «хвост» мусора, захожу в блок и забиваю нулями этот мусор. (вторая требуемая доработка — нужна процедура забития нулями облости, я просто замучился по одному фигачить).
После того как ошибка пропала, жму «Загрузить структуру ветки».
К сожалению одна таблица не подлежала востановлению, но поразмыслив я понял что это таблица из новой конфигурации и она просто пустая, по этому я решил на нее забить.
На этом этапе вроде все выглядет красиво, но все равно не работает.
Тогда лезу в корневой обьект «редактировать таблицу» и вижу что длинна явно кривая (на картинке уже исправленый вариант), ну лезу в описание корневого и исправляю длинну.
после этого Tool_1CD.exe выдает только 1 ошибку, а chdbfl.exe две и говорит, что может помоч.
Запускаю chdbfl.exe на исправление и база завелась в режиме предприятия, и вроде все данные целы.
идем далее (последний рисунок)
Учитывая что часть блоков неверно распределено (на картинке серые) и корневой обьект содержит ссылки на FREE блоки, запускать на базе какие-либо махинации в конфигурации не стоит, стоит через выгрузку XML все перенести в новую чистую базу и уже с ней работать.
То что мне сообщил клиент:
Исходный релиз платформы 8.2.13.219. Текущий релиз платформы 8.2.16.352. Обновил без проблем и реструктуризация прошла успешно. Исходный релиз конфигурации БП 2.0.32.1. Обновлял на релиз 2.0.41.3. В самый ответственный момент вдруг закончилось место на диске.
А почистить компьютер от мусора и заново провести апгрейд из дубликата ни самур-аЙ ни кли-ент не догадались? 🙂
(1) makas,
само сабой бекапов небыло 🙂 да и база была на флешке 🙂
в шоке.
(0) автор, как ваша публикация соотносится с
http://forum.infostart.ru/forum26/topic73004/message780847/#message780847
?
или мы имеем дело с множественностью аккаунтов?
(4) tango,
именно эта база, просто тот топ я не читал 🙂
забавненько
(0) 1 плохой программист создает 2-3 рабочих места. 1 плохой юзверь не делающий бекапов кормит 2-3 программиста. итог — меньше безработицы больше прибыль программистам. В ж*опу бекапы даешь прямую запись обновлений во время работы пользователей!!!
выложил условно рабочую версию конфигурацииhttp://code.google.com/p/restoration-base-1c8/downloads/detail?name=1Cv8_0.2.3.zip&can=2&q=#makechanges
(10)(8)(7)
странно, думал что и так понятно… В данном случае я выступаю в роли мастерской куда принесли сломаный телевизор, а Вы кричите что телевизор нельзя поливать водой…
Ко мне обратились с УЖЕ СЛОМАНОЙ базой. База и бекапы не моя зона ответствености (и вообще я не имею отношения к этой базе и к той организации)!
Бекапы делать надо, но ведь пользователям этого не обьяснишь…
(11) Всё и так понятно!
(11)Шелдон — сарказм.
По мне так респект автору. Откопать и докопаться… Обычно в случае с файловой базой только руками разводят…
(11) просто по тексту нельзя понять, что база была передана в уже убитом виде, а как раз наоборот. Причем есть детальное описание действий перед «падением» базы…
Спасибо за проект!
Буду пробовать, при обнавлении вышла ошибки «Ошибка СУБД: Файл базы данных поврежден», окозалось что ж/д битый,
после chkdsk /r теперь имею «Ошибка при выполнении операции с информационной базой Файл базы данных поврежден 1Cv8.1CD».
chdbfl.exe убивает половину конфигурациию почти всю информацию на эту половину. после чего старая версия Tool_1CD начал видеть информацию с базы, но без загаловков таблиц,
теперь хочу спросить как можно в эту базу загрузить нужную конфигурацию.
Поможет ли Альфа весия туда загрузить?
конфигурация проекта мне не помогла вообще не загрузил ни базу ви базу после Tools_1C
Подскажите!
(18) harutyunb, чем окончилась ваша проблема?
(0) загружаю через вашу конфу (компоненту) базу чуть более 2Г
устал ждать как долго…
вряд ли чтение com-сервером быстрее
наверное, стоит не грузить все сразу, а подгружать нужные кусочки по мере надобности
(20) он и грузит кусочками
реально он грузит только системные данные и строит связи между ними.
а долго это по двум причинам
1. сама 1с медленная
2. он не использует корневой обьект а все строит сам.
2 гига — примерно 2-3 часа должно идти
(21) уже больше двух 🙁
а щас прям так и зашевелился — эффект присутствия, наверно
конец уж близок
упс
(19) tango, Все закончилось, печально! были утеряны данные!, Но это послужило хорошим уроком для дальнейшего восстановления. нельзя делать chkdsk, он полностью сектор (512бит) заменяет 0-ями, после него невозможно восстановить, я делаю по другому, через прог-у nscopy копию, которая только нечитаемый биты заменяет 0-я, после если конфигурация цела, можно войти и делать тестирование где можно увидеть поврежденную инф-у, но можно восстановить, потому что любой документ при проведении делает записи в регистре накоплении и в других регистрах и легко найти первичную инф-ю, или в крайном случаи зесли побита конфигурация, через 1с-TOOLS делаю удаление конфигурации с базы, потом его закрываю, и загружаю снового, туда из резервной копии делаю сохранение конфигурации, после опять открываю нашу базу и импортирую его туда и уже можно запустить через конфигутор. можно так же востановить другие блоки базы из резервной копии!!!
Этот способ мне выручает, иногда прибегаю к hex-редактору(бывает сдвиг по базе).
Автор, а будет возможность востонавливать удалённые объекты?
Очень благодарна автору за выложенный материал!!!
Подскажите пожалуйста, как вы воспользовались программой из проекта (https://code.google.com/p/restoration-base-1c8/) для открытия файла БД? Просит файл с необычным расширением *.2CD..
Не сразу разобралась, решается изменением расширения файла.
У меня при попытке зарегистрировать ВК почему-то вылетает с ошибкой
Показать
(31) А вот на 8.2 пошла, родимая)
А что делать с сообщениями вида
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла — 00 00 29 D3 70 00
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла — 00 00 29 D3 60 00
(31) the1, возможно манифест нужно отредактировать…
(32)
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла — 00 00 29 D3 70 00
в твоем файле по адресу 00 00 00 01 70 00 располагается таблица ссылок на блоки файла, у тебя там лежит невалидное значение, тут варианты
1. файл неожиданно стал меньше и теперь не содержит нужных данных (такое может быть например при восстановлении файла с диска), тут вряд ли чего сделаешь
2. в таблице ссылок попался мусор (тогда это нужно забить 00), обычно такое бывает в конце таблицы
3. в таблице находится ссылка уже перемещённого блока, в этом случае хорошо-бы его найти и ссылку поставить корректную, тут нужно смотреть среди блоков которые не лежат в корне дерева и не имеют на себя ссылок
У меня при загрузке файла выскочили только ошибки вида
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла — 00 00 29 D3 70 00.
Как определить, где находится эта ссылка за пределами файла? Искать в теле блока последовательность 00 00 29 D3 70 00?
Как понять, что там мусор или не мусор?
Базу некогда грохнули по каким-то причинам, а затем восстанавливали специально обученными программами.
(35)
00 00 00 01 70 00 — это бинарный адрес (hex смещение), там лежит указатель 00 00 29 D3 70 00, значение этого указателя больше размера файла.
есть 2 возможные причины
1. этот указатель мусорный и его следует забить нулями
2. указатель был правильный но файл кто-то обрезал и часть файла просто пропала, тут скорее всего базу восстановить не удастся…
очень крутая статья! вирус шифральщик зашифровал базу! — наткнуля на эту конфигурацию
загрузил файл .2сd, нажал кнопку Загрузить список внутренних файлов — ошибок не было ни одной, нажал кнопку Загрузить структуры внутренних файлов — посыпались ошибки «Блок 00 00 00 00 10 00 содержит ссылку за пределами файла ________» и много различных вариантов файла
как быть в этом случае?
(37) myromskui,
В таком случае либо платить автору вируса за расшифровку (без гарантии!!!), либо восстанавливать базу из бэкапа. Нет бэкапа — восстанавливать учет по первичке.
(38) Cooler, но мне кажется, вирус не зашифровал сами данные внутри базы — проблема только в первых двух блоках 00 00 00 00 10 00 и 00 00 00 00 20 00 — т.е по сути мне кажется они должны быть типовые для большинства баз! и решением должно быть заменить эти блоки на типовые!!! но только чем и как ????
(39) myromskui,
Это вам так только кажется. Потому что эти проблемы обнаруживаются сразу же в момент открытия базы и до других дело просто не доходит.
Обычная практика для вирусов-шифраторов: небольшие файлы они шифруют полностью, а большие (базы 1С, видеофайлы и т.д.) — частично, кодируя несколько блоков в разных местах файла.
Поэтому даже если вы восстановите заголовок базы, то неизвестно, что еще обнаружится внутри: могут быть «кракозябры» в любых справочниках или документах, или разрушены итоги. Или, если зашифрованным окажется не тело какой-нибудь таблицы, а ее заголовок (описание), то тогда вы теряете к ней доступ — фактически, лишаетесь всей таблицы.
(40) Cooler, это все окей да логично! но меня сейчас просто интересует сама процедура замены этих двух блоков т.е типо некая инструкция «мол берем аналогичную базу открываем HEХ редактором находим начало конец блоков, также открываем убитую базу HEX редактором и делаем замену блоков на правильные значения»…кароче чтоб велосипед не делать — полюбому кто-то ковырял уже такое
х32 компонента для 8.3 прикладываю (поместить в общий макет)
Пишет «{ОбщийМодуль.ПоддержкаКомпонентыКлиент.Модуль(20)}: Тип не определен (AddIn.Bin1CD.TBin1CD_VK)
ВК = Новый («AddIn.Bin1CD.TBin1CD_VK»);
Как быть?
Платформа 8.2.19.83
При открытии файла базы в «Win 7 64» не подключается компонента.
Сначала сообщение «Внешняя компонента установлена», далее «Bin1CD_VK не установлена».
{ОбщийМодуль.ПоддержкаКомпонентыКлиент.Модуль(22)}: Тип не определен (AddIn.Bin1CD.TBin1CD_VK)
ВК = Новый («AddIn.Bin1CD.TBin1CD_VK»);
Должна работать?