1С 8

Как в 1С восстановить поврежденную базу «1С:Предприятие 8»

Порой для новичка данная задача кажется просто нереальной. Хотя, на самом деле, есть ряд нехитрых штатных средств тестирования баз 1С и приемов исправления возникающих ошибок.
Появление различного рода систематических сбоев (ошибок, неверно отображаемых данных, аварийное закрытие программы) можно считать повреждением базы.
Причины возникновения критических ошибок бывают разнообразными. Чаще всего проблемы возникают из-за сбоев электропитания.
С уверенностью можно сказать, что при клиент-серверном режиме работы база более устойчива к возникновению ошибок.
В рамках наших статей, мы будем рассматривать файловый режим работы базы. И первое, о чем нужно предупредить клиента – наличие источника бесперебойного питания на компьютере, где установлена информационная база, очень желательно.
Итак, главное не пугаться и перед попыткой восстановления базы сделать ее копию.
Например, можно сначала скопировать всю папку, в которой размещена база, а затем в этой папке оставить только файл 1Cv8.1CD (файл базы) и папку 1Cv8Log (журнал регистрации событий).
На самом деле, в большинстве случаев базы подлежат восстановлению. Некоторые 1С-ники это поняли и с радостью перехватывают таких клиентов. Самому делать в большинстве случаев ничего особенного не надо, клиент испуган, а работа тестовых программ занимает не малое время.
Перейдем к практике. Сначала выясните у клиента, как давно и при каких обстоятельствах стали возникать сбои. Узнайте, как пользователи осуществляют обновление конфигурации и как по времени связаны эти два события. Уточните объем базы.
Даже если в данном конкретном случае выясненные обстоятельства решающим образом на Ваши последующие действия не повлияют, Вы сможете собрать некоторую статистику, которая может пригодиться в будущем.
Обязательно узнайте, обновлялась ли платформа, и под каким релизом платформы база работала до этого.
Первым делом удалите все файлы и папки, которые в заданной директории окружают файл базы (1Cv8.1CD). Да, это некие служебные файлы, обеспечивающие полноценную работу, но точно отмечено, что иногда в работе этих файлов возникает некоторое рассогласование.
Ничего страшного не случится, потому что при очередном запуске базы все необходимые файлы будут созданы заново. С запуском мы пока повременим.
Теперь используем самое эффективное, но еще далеко не последнее, средство. В директории C:\Program Files\1cv82 (для платформы 8.3 – 1cv8)\(далее номер релиза платформы)\bin запустите утилиту chdbfl.exe.
Внимание! В каждом релизе платформы есть своя утилита chdbfl.exe. Целесообразно использовать утилиту из того релиза платформы, с которым использовалась данная база. В большинстве случаев – это последний установленный релиз платформы.
Здесь стоит сказать об одной особенности, если момент повреждения базы примерно совпадает с моментом обновления платформы, то утилита chdbfl.exe предыдущей платформы зачастую дает лучшие результаты в поиске и исправлении ошибок.
Однако рекомендуем идти сверху вниз (от старших релизов к младшим). В конечном итоге, первоначальная копия у Вас есть, и Вы всегда можете сделать еще одну копию и повторить весь цикл.
Особенность данной утилиты – если при первом проходе исправленных ошибок не было (утилита не смогла исправить ни одной ошибки), то повторно ее запускать, можно сказать, бесполезно.
Однако если ошибки исправлены не все, но при этом отмечается уменьшение количества ошибок, то имеет смысл запустить утилиту еще раз.
Были случаи, что за второй проход количество найденных ошибок изменялось до нуля. Одним словом, повторяйте операцию, пока есть результат уменьшения количества ошибок. Похоже, что некоторая часть исправленных ошибок при очередном проходе позволяет исправить еще и другие.
Далее, даже если Вам удастся добиться нулевого количества ошибок, имеет смысл воспользоваться средствами тестирования и исправления в конфигураторе.
Сами параметры тестирования и исправления, если Вы абсолютно четко не понимаете, что именно делаете, лучше не трогать.
Улучшение результатов тестирования при повторном использовании данного средства не отмечено.
Следует еще сказать о средстве проверки конфигурации. По опыту, ошибки, отмечаемые данным средством, не отличаются особой критичностью. Скорее они просто замедляют работу самой базы. Что, по сути, для баз размером свыше 4 Гб пользователем может расцениваться тоже как повреждение базы.
4 Гб — это максимально допустимый размер не самой базы, а таблицы в базе. Но какой-нибудь регистр может быть значительно больше остальных и занимать большую часть размера базы.
В данной форме также без абсолютно четкого понимания никаких настроек менять не стоит.
Следует сказать еще об одном не совсем очевидном методе. Дело в том, что при выгрузке базы в файл с расширением dt существует крайне низкая вероятность, что загрузить его обратно не удастся.
Однако при загрузке происходит некая реструктуризация памяти, что в отдельных случаях позволяет восстановить работу базы путем последовательной выгрузки и загрузки.
Если после всех проведенных мероприятий и испытаний Вы обнаружили, что Ваша база остается поврежденной, то целесообразно использовать и это средство.
Выгрузка производится в конфигураторе через меню Администрирование, пункт Выгрузить информационную базу.
Появится диалоговое окно, в котором нужно будет указать направление выгрузки. Название создаваемого файла можно использовать по умолчанию – 1Cv8.dt.
Следует отметить, что выгрузка также является одним из возможных методов копирования.
Загрузку лучше всего производить в новую базу без конфигурации. Для создания такой базы в окне информационных баз нажмите на кнопку Добавить. На очередном шаге сохраните настройку Создание новой информационной базы и нажмите на кнопку Далее.
В появившейся форме поменяйте настройку на Создание информационной базы без конфигурации и также нажмите на кнопку Далее. На последующих двух шагах определите имя базы и директорию (пустую), в которой она будет находится.
Дополнительные параметры можно не заполнять и нажать на кнопку Готово. Будет создана информационная база без конфигурации.
Загрузка производится через меню Администрирование, пункт Загрузить информационную базу.
Далее появится диалоговое окно, в котором необходимо указать ранее выгруженный файл для загрузки.
Еще пару моментов. Если неисправности в работе базы отмечаются только на одном компьютере, следует попробовать поменять компьютер. Если неисправности проявляются только у одного пользователя, то следует попытаться пересоздать пользователя.
Иногда помогает удаление базы из списка в окне информационных баз с последующим добавлением в список той же существующей информационной базы (восстановление пути к ней).
В заключение хочется сказать, что, конечно, не все базы подлежат восстановлению, часть из них восстанавливается более сложными способами. Но не огорчайтесь, такие случаи бывают достаточно редко.
В качестве профилактики можно посоветовать производить обновление баз через конфигуратор и использовать штатные средства тестирования и исправления ошибок перед каждым обновлением. Пользователи, которые являются обладателями базовых версий и имеют право на бесплатное обновление, также могут предварительно скачивать файлы обновления с сайта.