Файл базы данных поврежден 1Cv8.1CD — что делать?
Сообщение «Файл базы данных 1Cv8.1CD» характерно для файловых баз данных 1С 8.3 и 8.2. Повреждение может происходить в результате повреждения оборудования, или, чаще всего, в результате неожиданного отключения электроэнергии.
Перечислю действия, которые возможны при попытке избавиться от подобной ситуации:
Теперь рассмотрим каждый пункт подробней.
Важно! Обязательно обновите платформу 1С: Предприятие 8.3 до последней версии!
Восстановление резервной копии
Если у Вас настроено ежедневное резервное копирование, то Вам повезло. Нужно просто восстановить последнюю рабочую копию и работать дальше.
Чтобы восстановить рабочую резервную копию, нужно войти в конфигуратор, войти в меню «Администрирование» и выбрать «Загрузить информационную базу…»:
Во избежание ошибки советую сначала создать новую, пустую базу данных и загрузку делать в нее.
Получите понятные самоучители по 1С бесплатно:
Но, к сожалению, на многих предприятиях пренебрегают регулярным резервированием базы. Поэтому придется пытаться восстановить поврежденный экземпляр.
Делаем резервную копию поврежденной информационной базы
Перед любыми дальнейшими действиями необходимо сделать резервную копию базы.
Резервная копия делается почти так же, как и загрузка информационной базы, только в меню «Администрирование» выбираем пункт «Выгрузить информационную базу…».
Если повреждения в базе данных довольно серьезные, штатная выгрузка может не пройти. В таком случае нужно выйти из конфигуратора, создать новый каталог на диске и скопировать в него файл 1Cv8.1CD. Это и есть база данных:
Кстати, после этого можно попробовать подключиться к этому новому каталогу и запустить программу. Дело в том, что ошибка может таиться в файлах кэша, а в новом каталоге их не будет, и база может нормально запуститься.
Если проблема не исчезла, продолжаем ремонт системы.
Тестирование и исправление базы данных
Если конфигуратор доступен, заходим в него и идем в меню «Администрирование». Там выбираем пункт «Тестирование и исправление…»:
Насчет настроек данного режима единого мнения нет. Я предпочитаю устанавливать указанные на рисунке.
В разделе «Проверка и режимы», если база данных большая, флажки можно устанавливать поочередно и смотреть после выполнения результат.
Выбор «Только тестирование» считаю бесполезным, так как ошибки все равно исправлять надо. Если что-то будет не так, у нас есть резервная копия.
При наличии ссылок на несуществующие объекты программа по умолчанию предлагает ничего не изменять. Не знаю, насколько это эффективно, я сразу ставлю «Создавать объекты». Вы можете сначала попробовать «Не изменять». Программа должна вывести все найденные такие ссылки, и после этого нужно принимать решение, очищать их или создавать.
После выполнения настроек нажимаем кнопку «Выполнить». Если все проходит гладко, значит, база восстановлена, о чем будет сообщено.
Но опять же, во время тестирования может возникать критическая ошибка, и действие не завершается.
Тогда пробуем еще один способ.
Использование утилиты chdbfl.exe
В каталоге с установкой системы имеется файл chdbfl.exe. Путь к папке с файлом проще всего найти следующим образом. На ярлыке запуска программы 1С нажимаем правой кнопкой мышки и выбираем пункт «Свойства». Откроется следующее окно:
Нас интересует только выделенная часть. Далее находим папку с последней установкой платформы, далее каталог bin. Вот в нем и находится искомый файл:
Запускаем его. Запустится программа восстановления информационной базы:
Выбираем файл с нашей испорченной базой, ставим галочку «Исправлять ошибки» и нажимаем кнопку «Выполнить».
Каждый из описанных способов может/должен привести к исправлению ошибки в файле базы данных.
Смотрите также наше видео про восстановление базы после появления ошибок:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Что делать если поврежден файл базы данных 1С 8.3?
Как говорил один политический деятель (ныне покойный): «Никогда ничего подобного не было – и вот опять!». Скакнуло напряжение – и появилось сообщение о том, что файл базы данных 1Cv8.1CD – обычное дело для БД 8.3, 8.2. «1С» пишет, что база повреждена, что делать в такой ситуации? Ниже приведены несколько вариантов действий для восстановления данных в платформе «1С:Предприятие» из серии «Пока ждем админа».
Восстанавливаем из бэкапа файл базы данных 1С
Если вы читали наши материалы об администрировании «1С:Бухгалтерии 8.3» и в частности о создании бэкапов, то резервное копирование настроено у вас правильно и под руками имеется соответствующий файл. В таком случае если повреждена база 1с 8.3 что делать понятно: просто восстановить ИБ.
Создаем пустую БД, выгружаем в нее бэкап и открываем ее в режиме конфигуратора.
Далее выбираем раздел «Администрирование» в главном меню и даем команду «Загрузить информационную базу».
Когда откроется окно, следует указать путь к самой свежей по дате резервной копии и дать команду «Открыть». Система отреагирует соответствующим образом, сообщив о том, что по загрузке конфигуратор будет закрыт, а несохраненные данные в открытых окнах будут утрачены. Это не должно нас пугать, поскольку мы копируем бэкап пустую базу. Смело соглашаемся, нажав «Да».
После завершения выгрузки ИБ и закрытия режима конфигуратора произойдет запуск «1С:Предприятие 8.3» в режиме пользователя.
Чистим кэш базы данных 1С
Банальный, но действенный способ, особенно когда у одного пользователя все «ОК», зато у другого отображается «роковая» ошибка. Вообще кэш надо чистить регулярно, чисткой кэша «лечатся» и ошибки конфигурации, и программные, и аппаратные проблемы. Реализовать это можно тремя способами – вручную, путем удаления базы, параметром ClearCache, спецутилитами, но для рядового пользователя второй способ проще.
Находим файл ИБ – это просто установить по пути, который отображается, если выбрать нужную нам базу, закрыть «1С», скопировать файл.
Создав новую папку, добавляем туда скопированный файл:
В окно запуска добавляем новую базу:
Поскольку в новом каталоге кэша уже не будет, то база запустится нормально. Или, что тоже не исключено, снова вылезает роковое сообщение о том, что база 1С повреждена что делать?
Встроенное средство восстановления файла базы данных 1С
Внимание: при системном подключении все пользователи должны покинуть систему, в противном случае снова появится сообщение о неполадках. Далее отыскиваем полезный инструмент, спецутилиту chdbfl.exe, которая, как правило, располагается:
Открываем утилиту, указываем ей путь к поврежденной базе данных, выставляем галочку, давая команду «Исправлять обнаруженные ошибки». Нажимаем «Выполнить».
Если проверка выявит список исправлений, то они будут выведены на экран. Впрочем, база данных будет восстановлена и тогда, если ошибок не будет выявлено.
Также помогает решить проблему перезапуск SQL-сервера, при котором перезапишутся все временные документы, но этот способ все-таки можно рекомендовать лишь самым опытным пользователям. Если вы видите сообщения наподобие того, что имеет место ошибка выделения памяти, то имеет смысл все-таки вызвать специалиста, аттестованного «1С».
Что значит битая база 1с
Перед тем как начать исправлять базу обязательно сделайте резервную копию!
1. Через конфигуратор
Выбрать «тестирование и исправление» и запустить.
2. Утилита chdbfl.exe
Если в конфигуратор войти нет возможности можно воспользоваться утилитой chdbfl.exe. Ее скачивать не нужно, она находится в папке, где установлена 1С.
У меня утилита chdbfl.exe находится тут
Нужно ее запустить, выбрать файл 1Cv8.1CD в папке базы 1с, поставить галочку «Исправлять обнаруженные ошибки» и запустить.
3. Очистить кэш (более подробно смотреть тут) .
Бывают такие глюки\сбои которые очень хорошо исправляются очисткой кэша.
Например один пользователь входит в базу 1с и работает без проблем, а другой или войти не может или при входе у него куча ошибок и т.п.
Способ очень простой.
Нужно подключиться к компьютеру этого пользователя, запустить 1с чтобы появился список баз.
И сделать так:
1 Выбрать в списке нужную базу
2 Удалить ее из списка, сама база не удалится. Главное запомните или запишите где она лежит.
3 Заново ее пропишите.
Сейчас у одного из моих клиентов ситуация в которой не помог ни один из этих способов.
Клиент новый, поэтому я еще не до конца разобрался как у него все устроено.
База файловая, находится на вирт машине, 1с без сервера запускается с другой вирт. машины.
Возможно 1с просто не хватает ресурсов.
Базу скачал себе, запущу и попробую поработать в ней, если ошибка не появится, то проблема точно не в 1с, а в системном администрировании.
Тогда буду перенастраивать.
Узнал что ресурсов на компьютере клиента достаточно.
Решено. Проблема была в платформе.
Переустановка платформы и удаление старых версий полностью решило проблему. 🙂
Восстановление базы 1С с помощью HEX редактора
Кто не знает, chdbfl.exe — это стандартная программа восстановление и тестирования физической целостности базы 1С, входящая в комплект платформы. И всем уже давно известно что chdbfl.exe делает только хуже в большинстве случаев(в моей практике именно так).
А началось всё с очень банальной ошибки. Так как программисты из 1С очень любят мудрить, то во время очередного обновления 1С: Бухгалтерии вывалилось следующее:
Сейчас то я знаю, что эта ошибка устраняется очищением кэша, но в то время я воспользовался именно chdbfl.exe и Конфигуратором(Тестирование и исправление). Ошибка ушла и я легко обновился. Но на следующий день раздался тревожный звонок бухгалтера: — Приезжай!
По приезду меня встретила 1С с выскакивающим дампом при открытии документа «Поступление товаров и услуг». Было решено сделать ещё раз вышеперечисленные пункты. И о чудо! Проблема была решена. Я с гордостью уехал из организации, но при этом забрал базу для тестирования на своём компьютере. Но не тут то было. Теперь уже другой документ вываливался с дампом. Было решено отложить всё на завтра и попытаться что-то сделать на своём компьютере. И на этот раз мне помогли такие же шаги, как и раньше. «Теперь всё» — думал я. Но не совсем.
Спустя 2 недели раздался очередной звонок: — Отчёты горят, приезжай срочно!
На этот раз было всё куда серьёзней. При пересчёте итогов 1С выдавала следующее:
Отчёты, которые требуют итоги выдавали следующее:
Как и раньше, я воспользовался теми же утилитами что и раньше, но результата это не дало. Как и не дало результата всяческие выгрузки/загрузки/сохранения. Обновление тоже не проходило по неизвестной мне причине:
Это меня поставило в тупик на 2 дня. За эти дни было перепробовано почти всё. Многие советовали посмотреть план счетов и удалить лишние субконто у этого счёта. Но! Всё было типовое, никаких изменений не производилось.
Решение пришло внезапно и навеяно вот этой статейкой. Скачал все программы из статьи и начал «ковырять». Открыл файл базы в Tool_1CD и после получаса курения и понимания выяснилось что:
— _Acc — основная таблица плана счетов.
— _Acc_ExtDim — таблица видов субконто плана счетов, создается для плана счетов в том случае, если максимальное количество субконто больше нуля.
В моём случае это таблицы _АСС13 и _АСС13_EXTDIM446 соответственно:
Итак, начинается самое интересное. Запоминаем поле _IDRREF нашего счета в таблице _АСС13:
Переходим в _АСС13_EXTDIM446 и пытаемся найти этот идентификатор в поле _АСС13_IDRREF:
Вот они, наши заветные субконто. Но ведь их должно быть три! Каким-то непонятным и странным образом Конфигуратор при реструктуризации и chdbfl.exe задвоили субконто этого счёта и поэтому выскакивала ошибка. Лишние нужно как-то удалить. Для этого нам понадобиться ещё одно поле из той же таблицы, _KEYFIELD. Запоминаем все значения лишних субконто. Должно получиться следующее:
— 5724b6a1-5590-484e-a7c1-920ebbd1a385 000001b0
— 5724b6a1-5590-484e-a7c1-920ebbd1a385 000001b1
— 5724b6a1-5590-484e-a7c1-920ebbd1a385 000001b2
Для следующего шага нам понадобится HEX редактор. Открываем в нём наш файл базы. Тут я немного затормозил. Искал как только можно и где только можно строку 5724b6a1-5590-484e-a7c1-920ebbd1a385. Истина оказалась почти рядом. Нужно было искать не всё целиком, а по декадам цифр. Но тут опять подвох. Таких значений было очень много. И каким-то случайном образом я нашёл то, что мне было нужно, но в совершенно другом виде. Так, последовательность 5724b6a1-5590-484e-a7c1-920ebbd1a385 000001b0 в HEX редакторе была вот такая — a7c1920ebbd1a385484e55905724b6a1000001b0.
И так с каждым субконто. Нужные нам строки:
— a7c1920ebbd1a385484e55905724b6a1000001b0
— a7c1920ebbd1a385484e55905724b6a1000001b1
— a7c1920ebbd1a385484e55905724b6a1000001b2
Надеюсь, мой опыт кому-то поможет при решении аналогичной проблемы.
Итак, изложу перечень своих проделанных действий по шагам:
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С Предприятие и открываю базу, как обычно.






















