Восстановление разрушенной файловой базы 1С

Администрирование - Тестирование и исправление

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

Обратились с проблемой. Разрушена база 1С. Прислали файл базы *.1CD. Больше никаких копий базы не имелось и бэкапы, конечно же, не вели.

После входа в конфигуратор при попытке открыть конфигурацию БД вываливается с ошибкой:

При попытке запустить в режиме 1С предприятие аналогичная ошибка.

Сделав копию файла базы, проанализировал с помощью chdbfl.exe (входит в состав платформы 1С:Предприятие) на наличие повреждений БД. Результат был таким:

 
 Подробнее

Большое спасибо за утилиту Tool1CD Валерию Агееву. С помощью нее провел тест формата потока, который, конечно же, выдал ошибку. Далее проанализировал состояние таблиц которые, к счастью, оказались в полном порядке.

При попытке тестирования и исправления из конфигуратора, во время реструктуризации таблиц завершалось с ошибкой:

 
 Подробнее

Проанализировав статью на ITS Размещение данных 1С:Предприятия 8. Таблицы и поля стало очевидным, что в таблице Config хранится конфигурация базы данных.

Все свидетельствовало о том, что конфигурация базы данных была мертва. Открыв базу с помощью Tool1CD, я попытался выгрузить конфигурацию базы данных и сохранить ее:

На что получил ругань

Далее попытался сохранить основную конфигурацию и тоже с ошибками.

К счастью, удалось открыть основную конфигурацию с помощью конфигуратора и опознать конфигурацию и ее версию. Это оказалась:

Уточнив у заказчика детали, я выяснил, что конфигурация типовая, не дорабатывалась и с поддержки не снималась (в чем ему очень повезло).

Было принято решение восстанавливать конфигурацию БД и основную конфигурацию.

Скачав дистрибутив конфигурации, развернул демобазу и обновил ее до аналогичной версии 3.0.51.27. Дальше с помощью cnvdbfl.exe (входит в состав платформы 1С:Предприятие) сконвертировал базу в формат БД версии 8.2.14, после чего смог открыть файл базы с помощь утилиты Tool1CD.

Дальше с помощью Tool1CD сохранил таблицы CONFIG и CONFIGSAVE в отдельный каталог:

далее открыл разрушенную базу и импортировал туда таблицы:

после чего снова пробежался по базе с помощью chdbfl.exe, Результатом стало:

 
 Подробнее

Ошибка не критичная! Все отлично! После этого провел тестирование и исправление в конфигураторе:

И база ожила. Как новенькая!

Сверка ОСВ, проверка наличия документов, справочников и т.д. показала, что база в полном порядке.

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

См. также

Лучшие комментарии
10. Роман Озеряный (rozer) 192 21.10.17 22:28 Сейчас в теме
(9) выражение знаете ли есть такое "1р за удар молотком а 99р за знание куда бить...". Или "че это дернуть зуб мудрости надо 7 т.р. отдать за 10мин? Всему учиться надо и эта цена более чем норм )
Stylo; ДАК1; Terve!R; shard; artempo; shumvlesu; Xershi; user821186; CyberCerber; IvanovAV; citicat; nytlenc; +12 Ответить
17. борян петров (TODD22) 18 23.10.17 09:58 Сейчас в теме
(16)
я высказал свое мнение по поводу оплаты ( взяли вы свои 5000 и взяли , молодец) и высказал достаточно корректно

Высказывать своё мнение по поводу оплаты чьего либо труда уже "достаточно" не корректно.
Продал свои услуги дороже, молодец.

А желающие поработать за 500 руб тарелку супа всегда найдутся.
Terve!R; artempo; Xershi; herfis; IvanovAV; nytlenc; +6 Ответить
28. Den (dance000) 25.10.17 11:55 Сейчас в теме
Мне кажется рассуждать о процедурах восстановления которые различаются в 2-3 кликах или 2-10 минутах - бессмыслено.
Главное 2 вещи.
1. Результат. А он в приведенном примере есть.
2. Довольный заказчик. Тоже имеется (мы так предполагаем).

Рассказать про другие методы - это отлично, но ими не стоит принижать ценность или стоимость работ которые были произведены.
Остальные комментарии
1. Алексей Иванов (IvanovAV) 46 20.10.17 23:35 Сейчас в теме
Интересно сколько стоит такая работа, сколько за нее не стыдно брать с заказчика?
Была похожая проблема, тогда решил удалением конфигурации поставщика, и новой установкой на поддержку через конфигуратор, и типовой cf-ник, возможно мне тогда повезло.
Stim213; citicat; nytlenc; +3 Ответить
2. Сергей Пиданов (NetWorm86) 4 21.10.17 09:38 Сейчас в теме
(1)
Интересно сколько стоит такая работа, сколько за нее не стыдно брать с заказчика?
Была похожая проблема, тогда решил удалением конфигурации поставщика, и новой установкой на поддержку через конфигуратор, и типовой cf-ник, возможно мне тогда повезло.

Я тоже подобное делал как-то в своем время. Реально провозился почти два дня над этим делом, там была конфа слегка измененная (добавлялись реквизиты). Короче повозился я :)
3. Максим Б (Xershi) 285 21.10.17 11:32 Сейчас в теме
(1) 15$ в час. Описанный случай элементарный. Но для новичков сгодится.
4. Алексей Иванов (IvanovAV) 46 21.10.17 14:41 Сейчас в теме
(3) Про цену в час это понятно. А сколько в деньгах? Тот кто уже сталкивался с проблемой решит за 20 минут, а тот кто ниразу не делал, провозится 2 дня и не факт что сделает. Гилев на сколько я знаю от 30 тыр берет за восстановление базы. А тут какую сумму озвучивать клиенту?
5. Александр Синиченко (nytlenc) 191 21.10.17 15:09 Сейчас в теме
(4) конкретно за эту работу я взял 5000 рублей
Stylo; Terve!R; Dmitri93; IvanovAV; +4 1 Ответить
30. Константин Хоров (user705522_constantin_h) 1 26.10.17 12:41 Сейчас в теме
(5)Это вы просто благотворительностью занимаетесь. У меня был аналогичный случай. Почему-то задвоились таблицы. С базой можно было работать, но нельзя было обновить. База отправлялась в 1С. Их ответ: база восстановлению не подлежит. Клиент продолжил работу в новой базе. Сначала просил перенести в новую базу остатки из сбойной. Я смог восстановить базу. Решил проблему: взял чистую базу аналогичного релиза. С помощью обработки выгрузка/загрузка xml выгрузил данные из сбойной базы и загрузил в чистую. С учётом всех затрат: на поиск решения и исправление, затрачено 2 дня (около 40 тыс.).
32. Александр Синиченко (nytlenc) 191 26.10.17 17:43 Сейчас в теме
(30) согласен, достаточно трудоёмко! За такую же работу я взял бы аналогичные деньги +- 5К.
Не факт, что в вашем случае, удалось бы решить проблему способом, описанным в статье. Потому цена которую заплатил клиент за свое не желание делать бэкапы более чем оправдана.
6. Максим Б (Xershi) 285 21.10.17 15:21 Сейчас в теме
(4) ну тут же суть в том что не каждую базу можно восстановить. Если исходить из понятия есть битая база и нужно выставить счет. То так это не работает!
7. Александр Синиченко (nytlenc) 191 21.10.17 15:26 Сейчас в теме
(6) Все верно. Конкретная стоимость оценивается уже по результатам.
8. Алексей Иванов (IvanovAV) 46 21.10.17 16:53 Сейчас в теме
(6) Клиенту интересен диапазон цен, например 5-10, это не тоже самое что 30-100 от матерых зубров восстановления. В некоторых случаях работы по восстановлению не рентабельные, проще учет восстановить. Например когда есть живой архив недельной давности. Поэтому и спрашиваю, среднюю рыночную стоимость у коллег.
9. Вадим Мориков (vadim1011985) 45 21.10.17 21:17 Сейчас в теме
нужно смотреть по состоянию базы за данный случай 5000 тыс. мне кажется многовато - за тестирование и исправление , проверка с помощью tool_1cd и перенос 2 таблиц их одной базы в другую - что соответствует примерно 1 часу работы (время тестирования не учитываю так как в это время мы ничего не можем делать )
10. Роман Озеряный (rozer) 192 21.10.17 22:28 Сейчас в теме
(9) выражение знаете ли есть такое "1р за удар молотком а 99р за знание куда бить...". Или "че это дернуть зуб мудрости надо 7 т.р. отдать за 10мин? Всему учиться надо и эта цена более чем норм )
Stylo; ДАК1; Terve!R; shard; artempo; shumvlesu; Xershi; user821186; CyberCerber; IvanovAV; citicat; nytlenc; +12 Ответить
11. Александр Синиченко (nytlenc) 191 22.10.17 04:39 Сейчас в теме
(9) если вы оцениваете свои знания и опыт ниже чем другие, никто не запрещает Вам делать тоже самое за другую стоимость. Статья написана не для того, чтобы обсуждать в ней сколько и кто взял бы за подобную работу денег. А для того чтобы поделиться и перенять опыт. Также нужно понимать, что в статье описан уже готовый, конкретный, рабочий пример от А до Я, т.к. написав статью я уже заранее знал решение этой задачи. Вы не учли то, сколько времени ушло на то, чтобы поднять демобазу, на тест формата потока, на анализ таблиц базы глазками, на распаковку убитого файла конфигурации БД и его анализ. На анализ того, соответствует ли реальный размер базы тому, что записано в таблице базы. И еще много чего другого, о чем я в статье не писал. А также на остальные безуспешные попытки восстановления.
Порт; artempo; OerlandHue; +3 Ответить
12. Вадим Мориков (vadim1011985) 45 22.10.17 09:07 Сейчас в теме
(11) тест формата потока был учтён , но во время теста в чем сводится работа - сидеть смотреть на всплывающие сообщения ? На счёт опыта могу сказать точно что восстанавливать приходилось не мало баз , и опыт в этом деле у меня приличный . Уже после chdbfl можно было смело копировать таблицы config и пробовать запустить базу. А если бы конфигуратор убитой базы не запустился как бы вы узнали релиз ? Просто я считаю описанную прроблему легким случаем , поэтому не так высоко оценил,
13. Александр Синиченко (nytlenc) 191 22.10.17 12:27 Сейчас в теме
(12) например распаковал бы битый файл конфигурации и посмотрел.
14. Вадим Мориков (vadim1011985) 45 22.10.17 19:55 Сейчас в теме
(13) вот в том то и дело что есть лишнее действие , распаковать , посмотреть , а можно потратить 2 минуты и узнать версию конфы через tool_1cd ( без выгрузки конфигурации)
15. Александр Синиченко (nytlenc) 191 23.10.17 04:43 Сейчас в теме
(14) к чему эта дотошность и нелепые попытки "поумничать"? Я вам просто привел пример сходу. Вариантов как это сделать масса. Какая разница? Посмотреть через Tool_1cd, в HEX редакторе, с помощью этой конфигурации или как-то иначе, главное результат!
Если Tool_1cd не сможет прочитать таблицы основной конфигурации и конфигурации БД вообще тогда вы ничего не узнаете.
У Вас есть чем дополнить статью или какой-то иной полезный опыт по конкретном, данному примеру? Если нет, тогда прошу не отнимать мое время.
18. Олег Медведев (olgerd666) 40 23.10.17 09:59 Сейчас в теме
(9) открытие базы в ТУЛ1СД и перенос 2 таблиц займет примерно около 5 минут - если с условием, что знаем что делать. Сколько выставлять за это?
19. Вадим Мориков (vadim1011985) 45 23.10.17 11:39 Сейчас в теме
(18) 3000 -3500 тыс. что соответствует 1.5 часа работы

Но опять же, это чисто мое мнение сколько нужно брать именно за данный случай. Как раз тут учитываются и знания и сама работа
22. борян петров (TODD22) 18 23.10.17 12:01 Сейчас в теме
(19)
3000 -3500 тыс. что соответствует 1.5 часа работы

И обязательно найдётся тот кто выскажет своё мнение что вы много берёте и он это сделает на 500 - 1000 руб дешевле.
23. Сан Саныч (herfis) 212 23.10.17 12:07 Сейчас в теме
(22) Ага. При этом с корректной аргументацией - что просто делает быстрее. Ну, просто потому, что как специалист лучше. Не чета некоторым.
26. Александр Шишков (sanek_gk) 70 25.10.17 10:30 Сейчас в теме
(22)
- 1000 руб деш

А когда придёт время что то сделать по такой цене (тарелки супа) выяснится что это "Совсем другой случай" и он совсем другое имел в виду, и что если бы база была 3 мб и восстанавливалась в 3 клика и т.д. то тогда да так ... а раз уже так не получилось тогда за дорого.
27. борян петров (TODD22) 18 25.10.17 10:40 Сейчас в теме
(26)Да не обязательно. Есть просто такие люди. Им любую цену назови они обязательно скажут: "Зачем ты у них заказал, я бы тебе на "тыщу" дешевле сделал".

У меня два знакомых проф услуги оказывают(не 1С и не ИТ). В городе не много кто этим занимается, все друг друга знают. Один выставляет за работы 10 000 руб. Второй на 1000 дешевле, тот ещё 1000 скидывает, вот так и "демпингуют", пока один не сдастся, а второй не поработает почти бесплатно. После чего они обязательно созваниваются, выясняют отношения и решают что больше так делать не будут. Ну а потом опять всё по новой.
artempo; nytlenc; +2 Ответить
29. Александр Шишков (sanek_gk) 70 25.10.17 12:53 Сейчас в теме
(27)
я два знакомых проф услуги оказывают(не 1С и не ИТ). В городе не много кто этим занимается, все друг друга знают. Один выставляет за работы 10 000 руб. Второй на 1000 дешевле, тот ещё 1000 скидывает, вот так и "демпингуют", пока один не сдастся, а второй не поработает почти бесплатно. После чего они обязательно созваниваются, выясняют отношения и решают что больше так делать не будут. Ну а потом опять всё по но

Я угадаю эту мелодию с 10 тысяч! .....
25. Максим *** (premier) 140 25.10.17 08:29 Сейчас в теме
(9) Один мой приятель говорил - "На баяне играть очень просто. Главное - знать на какие клавиши жать" ))) Комментарий из той же оперы, как говорится.
16. Вадим Мориков (vadim1011985) 45 23.10.17 09:26 Сейчас в теме
(15) Блин , и как я отнимаю ваше время ? , я высказал свое мнение по поводу оплаты ( взяли вы свои 5000 и взяли , молодец) и высказал достаточно корректно , это вы начали возмущаться по поводу моих слов . И сам смысл моих слов в том , что если человек разбирается он делает гораздо меньше не нужных действий и соответственно делает работу быстрее , Можете не тратить своё драгоценное время и не отвечать на это сообщение.
17. борян петров (TODD22) 18 23.10.17 09:58 Сейчас в теме
(16)
я высказал свое мнение по поводу оплаты ( взяли вы свои 5000 и взяли , молодец) и высказал достаточно корректно

Высказывать своё мнение по поводу оплаты чьего либо труда уже "достаточно" не корректно.
Продал свои услуги дороже, молодец.

А желающие поработать за 500 руб тарелку супа всегда найдутся.
Terve!R; artempo; Xershi; herfis; IvanovAV; nytlenc; +6 Ответить
20. Александр Синиченко (nytlenc) 191 23.10.17 11:47 Сейчас в теме
(16)
И сам смысл моих слов в том , что если человек разбирается он делает гораздо меньше не нужных действий и соответственно делает работу быстрее

То есть это повод взять меньше денег с клиента? А может наоборот больше нужно брать, как раз за этот драгоценный опыт и сэкономленное время?

я высказал свое мнение по поводу оплаты ( взяли вы свои 5000 и взяли , молодец) и высказал достаточно корректно

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

А также пытаться учить тому, что нужно делать. Ученого учить только портить:
вот в том то и дело что есть лишнее действие , распаковать , посмотреть , а можно потратить 2 минуты и узнать версию конфы через tool_1cd ( без выгрузки конфигурации)
user821186; IvanovAV; +2 Ответить
21. Алексей Иванов (IvanovAV) 46 23.10.17 11:57 Сейчас в теме
ИМХО, если клиенту за тарелку супа восстанавливать базу, то он не поймет всей ценности работы, и обязательно завалит базу еще раз, а потом будет возмущаться почему это в очередной раз базу не смогли восстановить так же быстро и дешево как в первый раз.
По опыту: у клиента регулярно валилась база, восстанавливали за 3 копейки, а клиент не хотел вкладываться в железо и клиент-сервер. В крайний раз зарядили ему 30-ку, за работы. Через неделю был куплен новый сервер )))
user705522_constantin_h; artempo; myr4ik07; AlX0id; DmitryKSL; user821186; nytlenc; +7 Ответить
24. Юрий Муллабакиев (mulla1979) 8 23.10.17 22:24 Сейчас в теме
О да! Знакомые танцы с бубном!
28. Den (dance000) 25.10.17 11:55 Сейчас в теме
Мне кажется рассуждать о процедурах восстановления которые различаются в 2-3 кликах или 2-10 минутах - бессмыслено.
Главное 2 вещи.
1. Результат. А он в приведенном примере есть.
2. Довольный заказчик. Тоже имеется (мы так предполагаем).

Рассказать про другие методы - это отлично, но ими не стоит принижать ценность или стоимость работ которые были произведены.
31. Константин Хоров (user705522_constantin_h) 1 26.10.17 12:45 Сейчас в теме
Интересное решение. Надо будет попробовать.
Оставьте свое сообщение