После отключения питания бухгалтер проводит документ, а 1С отвечает: «Файл базы данных повреждён». Остановите сеансы и скопируйте весь каталог базы в отдельное место. Исходный 1Cv8.1CD не исправляйте.
В файловом режиме такая ошибка означает, что платформа не может прочитать 1Cv8.1CD. В нём хранится вся информационная база. Сейчас нужно сохранить исходник, проверить копию через chdbfl и остановиться, если штатные средства не вернут базу в рабочее состояние. Назначение файла и смысл ошибки описывают Moscowsoft и МИГСОФТ.
Завершите работу всех пользователей и скопируйте каталог базы целиком. Проверки и исправление запускайте только на копии.
Сначала определите режим базы
chdbfl работает только с файловой базой. Для базы на MS SQL Server или PostgreSQL утилита бесполезна: данные хранит СУБД, а файла 1Cv8.1CD там нет.
Откройте свойства информационной базы в окне запуска 1С. У файловой базы вы увидите путь к каталогу, внутри которого лежит 1Cv8.1CD. У клиент-серверной — сервер и имя базы.
Если свойства не открываются, найдите каталог, из которого пользователи запускают базу. Файл 1Cv8.1CD указывает на файловый режим. Эту развилку и ограничение chdbfl подтверждает МИГСОФТ.
Не путайте повреждение файла с ошибкой доступа. Если не входит один пользователь, а остальные продолжают работать, сначала перерегистрируйте базу в списке запуска. Как поясняет i-tat, удаление записи из списка не затрагивает каталог с данными.
Почему повреждается 1Cv8.1CD
Повреждение часто связано с незавершённой записью. Отключилось питание, пропала сеть или аварийно завершился процесс 1С — платформа не успела записать связанные части файла. При следующем обращении она обнаруживает нарушение структуры. Эту последовательность описывают Moscowsoft, i-tat и Net-admin.
Файловая база в общей папке зависит от связи между рабочей станцией и компьютером с 1Cv8.1CD. Если сеть оборвалась во время записи, части файла могут остаться в несогласованном состоянии. Net-admin отдельно связывает такие аварии с сетевым размещением базы.
Антивирус тоже вмешивается в дисковые операции. Moscowsoft и Kvant-C пишут, что проверка каталога базы может задержать чтение или запись. Совпадения по времени недостаточно: сверьте момент сбоя с журналом антивируса.
Ошибки файловой системы и накопителя опаснее программного сбоя. Если Windows или журнал диска сообщает об ошибках чтения, не исправляйте единственную копию. Сохраните всё, что пока читается.
Ещё проверьте свободное место. Оно потребуется для копий, журналов и последующей выгрузки. При этом приведённые материалы не доказывают, что заполненный диск сам вызывает сообщение «Файл базы данных повреждён». Считайте объём свободного места условием дальнейшей работы, а не готовым диагнозом.
| Признак | Вероятная причина | Безопасная проверка | Следующее действие |
|---|---|---|---|
| Ошибка появилась после отключения питания | Запись оборвалась до завершения | Посмотреть события Windows и время сбоя | Работать только с копией каталога |
| База лежит на общей папке, перед ошибкой пропала сеть | Разорвалась связь во время записи | Проверить журналы рабочей станции, сервера и коммутатора | Перенести копию на локальный диск для проверки |
| Ошибка возникает на одном компьютере | Повреждён локальный кэш или запись в списке баз | Открыть ту же базу с другой рабочей станции | Перерегистрировать базу на проблемном компьютере |
| В журнале диска есть ошибки чтения | Повреждена файловая система или накопитель | Изучить SMART и события хранилища без записи на исходный диск | Снять посекторную копию или обратиться к специалисту |
| Антивирус проверял каталог в момент сбоя | Файл блокировался во время операции | Сверить время события с журналом антивируса | Настроить исключение после сохранения копии |
| Ошибка появилась после обновления | Обновление прервалось при активных сеансах | Проверить журнал регистрации и время завершения сеансов | Не повторять обновление на исходном файле |
Вывод: сначала отделите локальную неполадку от повреждения файла и сбоя накопителя. Эти проверки не меняют исходный 1Cv8.1CD.
Как проверить файловую базу через chdbfl
chdbfl.exe входит в поставку платформы и находится в каталоге bin. Типовой путь:
C:\Program Files (x86)\1cv8\<версия платформы>\bin\chdbfl.exe
У 64-разрядной платформы каталог может находиться в C:\Program Files\1cv8\. Берите утилиту из папки той версии платформы, которой открывали базу. Расположение и назначение chdbfl подтверждают МИГСОФТ, i-tat и Net-admin.
До запуска завершите все сеансы и фоновые задания. Затем сделайте ещё одну копию исходного каталога: первую оставьте нетронутой, со второй будет работать утилита.
Проверка без исправления
Запустите chdbfl.exe и укажите путь к скопированному 1Cv8.1CD. Параметр «Исправлять обнаруженные ошибки» пока не включайте. Утилита прочитает файл и покажет результат проверки.
Сохраните журнал или снимок окна с найденными ошибками. Если исправление сорвётся, эти сведения пригодятся специалисту.
Проверка завершилась без ошибок — откройте копию в Конфигураторе. Рабочий каталог ею пока не заменяйте. Сначала проверьте, что читаются конфигурация и данные.
Исправление отдельной копии
Если chdbfl обнаружила повреждения, снова скопируйте неизменённый исходник. Выберите новую копию и включите «Исправлять обнаруженные ошибки».
Риск возникает ещё до запуска. По техническому разбору Kvant-C, chdbfl должна вернуть файлу читаемость. Для этого утилита может удалить повреждённые блоки. Поэтому открывшаяся база не доказывает, что все объекты сохранились.
Не прогоняйте исправление несколько раз по одному файлу. Каждый проход меняет копию, а результат становится сложнее анализировать. Для следующей попытки снова берите неизменённый исходник.
| Этап | Что запускать | На каком файле | Когда остановиться |
|---|---|---|---|
| Сохранение исходника | Копирование всего каталога | Рабочий каталог базы | Копия не читается или копирование даёт ошибки |
| Первичная диагностика | chdbfl без исправления | Первая копия 1Cv8.1CD | ОС сообщает об ошибке чтения накопителя |
| Попытка исправления | chdbfl с исправлением | Новая копия исходного файла | Утилита завершается с ошибкой или повторно портит файл |
| Проверка результата | Конфигуратор 1С | Исправленная копия | Не открываются конфигурация или данные |
| Логическая выгрузка | «Администрирование → Выгрузить информационную базу» | База, открывшаяся после исправления | Выгрузка .dt завершается с ошибкой |
| Сборка новой базы | Загрузка .dt в пустую базу | Новый каталог | Не проходит загрузка или контроль данных |
Вывод: к следующему этапу переходите только с сохранённым исходником. Исправленный файл не должен остаться единственной копией базы.
Если база открылась, выгрузите её в .dt
Откройте исправленную копию в Конфигураторе. Выберите «Администрирование → Выгрузить информационную базу» и сохраните .dt на другом накопителе. Путь команды приводят МИГСОФТ и Net-admin.
Создайте новую пустую информационную базу и загрузите в неё .dt. По данным МИГСОФТ, при загрузке платформа строит таблицы заново. Так вы отделите логически читаемые данные от исправленного файла.
Не загружайте .dt поверх рабочей базы. Иначе потеряете её текущее состояние и точку возврата.
Одного успешного запуска мало. Откройте документы за период перед аварией, отчёты по регистрам и объекты, с которыми работали во время сбоя. Moscowsoft и i-tat отмечают: повреждение часто обнаруживается при создании или проведении объекта, активного в момент аварии.
Если данные прошли проверку, подключайте пользователей к новой базе. Исправленный 1Cv8.1CD храните отдельно до сверки данных и ближайшего закрытия периода.
Что делать с клиент-серверной базой
Для базы на MS SQL Server или PostgreSQL chdbfl не подходит. МИГСОФТ поясняет: в клиент-серверном режиме данные хранит СУБД, поэтому проверку начинают с её журналов.
Первый шаг — резервная копия средствами СУБД. После неё зафиксируйте точный текст ошибки, время события, имя базы и состояние хранилища. Если недоступен весь сервер баз данных, переходите к порядку действий для ошибки «Сервер баз данных не обнаружен».
Для MS SQL Server Kvant-C упоминает DBCC CHECKDB и восстановление по журналу транзакций. Эти операции могут менять базу. Результат зависит от режима восстановления, состояния журнала и доступных копий. Не переносите команды из чужого примера на рабочую базу без отдельной копии.
Для PostgreSQL сначала проверьте журнал сервера и состояние кластера. Дальнейшие действия зависят от базовой копии, архива WAL и состояния экземпляра СУБД. Схемы резервирования PostgreSQL для 1С разобраны в материале про дампы, базовые копии и WAL.
Что означает «невосстановимая ошибка базы данных»
Среди предоставленных материалов нет официальной расшифровки этой фразы от фирмы «1С». По одному сообщению нельзя определить повреждённый объект или выбрать инструмент ремонта.
Считайте его сигналом остановить текущую операцию. Ошибка возникает у одного пользователя — проверьте локальный кэш и запись базы в списке запуска. Копия 1Cv8.1CD не открывается и на другом компьютере — переходите к диагностике файла.
Сообщение «1С: база данных не открыта» тоже не доказывает физическое повреждение. Оно появляется при разных сбоях доступа. Для диагностики нужны полный текст ошибки, режим базы и результат открытия отдельной копии.
Если сообщение появилось во время загрузки или обновления данных, проверьте соседний сценарий — ошибку формата потока. Там порядок действий зависит от того, что повреждено: кэш, файл выгрузки или структура базы.
Где заканчиваются штатные средства
Остановитесь, если chdbfl не вернула читаемость, выгрузка .dt прервалась либо после исправления пропали документы и движения. Не перезапускайте базу по кругу. Не применяйте несколько утилит подряд к одной копии.
Tool1CD и шестнадцатеричный редактор умеют читать структуру файла в обход платформы — их упоминает Kvant-C. Это работа с внутренним форматом. Ошибка в смещении или записи может уничтожить фрагменты, которые ещё удавалось извлечь.
Перед передачей файла соберите:
- неизменённый каталог базы;
- все промежуточные копии;
- журнал
chdbfl; - точный текст сообщения 1С;
- версию платформы;
- время и обстоятельства сбоя;
- события Windows, антивируса и накопителя.
Так специалист увидит, какие действия уже меняли копии, и не станет повторять их вслепую.
Порядок действий на ближайшие минуты
- Завершите все сеансы 1С.
- Скопируйте весь каталог базы на другой физический носитель.
- Определите режим: файловый или клиент-серверный.
- Для файловой базы запустите
chdbflбез исправления на копии. - Сделайте новую копию исходника и только на ней включите исправление.
- Откройте результат в Конфигураторе и выгрузите базу в
.dt. - Загрузите
.dtв новую пустую базу и проверьте данные. - При ошибках чтения, потере объектов или сбое выгрузки остановите работу с файлом.
Правило короткое: исходный 1Cv8.1CD не ремонтируют. Его сохраняют неизменным, а каждую попытку проводят на новой копии.
Если штатные способы не помогли
Копии нет, chdbfl не завершает проверку или после исправления исчезли объекты — дальнейшие действия зависят от состояния файла. Передайте неизменённый исходник на аварийное восстановление базы 1С. Обещать возврат всех данных до диагностики нельзя.
Другие сценарии отказа собраны на карте аварий 1С. По ней можно отделить повреждение файла от сбоев платформы, СУБД и сервера.
Чтобы ошибка не повторилась
Настройте резервное копирование и регулярно разворачивайте копию в отдельную базу. Net-admin советует хранить копии на разных физических носителях. Файл рядом с рабочим 1Cv8.1CD исчезнет вместе с неисправным диском.
Сообщение об успешном задании ещё не доказывает, что копия пригодна. По расписанию разворачивайте её в новом каталоге, открывайте базу и проверяйте последние документы. Настройка описана в руководстве по резервному копированию 1С.
Если файловая база лежит на общей папке, оцените цену простоя и переход на клиент-серверный режим. Такой переход требует отдельного проекта и не починит повреждённый файл сейчас.
Можно ли запускать chdbfl на рабочем файле?
Нет. Завершите сеансы, скопируйте весь каталог и запускайте проверку на копии. Для режима исправления сделайте ещё одну копию исходника.
Что делать, если резервной копии нет?
Сохраните текущий каталог в неизменном виде и работайте с его копиями. Если файл не читается или chdbfl удаляет объекты, остановите попытки и передайте исходник специалисту.
Когда нужна выгрузка dt?
После того как исправленная копия открылась в Конфигураторе. Загрузите dt в новую пустую базу, чтобы платформа заново построила таблицы.
Подходит ли chdbfl для базы на SQL Server или PostgreSQL?
Нет. chdbfl работает с файловым 1Cv8.1CD. Клиент-серверную базу проверяют средствами СУБД после создания резервной копии.
Что означает невосстановимая ошибка базы данных?
Эта фраза не указывает точную причину. Определите режим базы, сохраните копию и проверьте, повторяется ли ошибка на другом компьютере и другом экземпляре файла.
Можно ли продолжать работу сразу после исправления?
Сначала выгрузите базу в dt, загрузите её в новый каталог и проверьте документы, регистры и отчёты за период перед сбоем. Подключайте пользователей только после этой проверки.