Повреждение 1Cv8.1CD: проверка chdbfl, тестирование в Конфигураторе и перенос в новую базу
Содержание
Если 1С 8.3 сообщает, что файл базы данных поврежден, сначала закройте базу у всех пользователей и скопируйте файл 1Cv8.1CD в другую папку. Затем запустите утилиту chdbfl.exe из каталога bin платформы с флажком исправления ошибок. Если она не помогла — выполните Администрирование → Тестирование и исправление в Конфигураторе, а при неудаче выгрузите данные в .dt и загрузите в новую пустую базу.
Способы идут от мягкого к радикальному. chdbfl чинит физическую структуру файла: страницы, индексы, таблицы. Тестирование в Конфигураторе исправляет логику: битые ссылки, итоги, структуру таблиц. Перенос в новую базу нужен, когда сам файл уже не держит данные. Последний рубеж — резервная копия.
С чего начать: копия файла и диагностика сбоя
Не пытайтесь чинить базу, пока не сделали копию. Любая утилита восстановления может удалить часть записей, которые она посчитает мусором. Копия даёт право на вторую попытку.
Сначала копия 1Cv8.1CD, потом любые исправления.
Порядок подготовки:
- Попросите всех пользователей выйти из базы. Проверьте, что на компьютере, где лежит база, нет зависших процессов
1cv8.exeили1cv8c.exe(Диспетчер задач → вкладка «Подробности»). - Найдите путь к базе: в окне запуска выделите её, внизу появится строка вида
File="D:\Bases\Buh". - Скопируйте всю папку базы на другой диск или флешку. Главный файл —
1Cv8.1CD, в нём лежат и данные, и конфигурация. - Посмотрите, какой точно текст ошибки выдаёт программа. Запишите его целиком.
От текста ошибки зависит, куда смотреть дальше:
Откуда берутся повреждения
Файловая база — один большой файл, в который программа постоянно пишет. Если запись оборвалась на середине, страница файла остаётся в неконсистентном состоянии. Типичные причины:
- ⚡ отключение электричества или жёсткая перезагрузка компьютера во время работы в базе;
- 🌐 работа с базой по сети через общую папку, когда связь пропадает (Wi-Fi, VPN, нестабильный свитч);
- 🛡️ антивирус, который сканирует или блокирует
1Cv8.1CDво время записи; - 💽 сбойные сектора на диске, заканчивающееся место на разделе;
- 🔪 снятие процесса 1С через Диспетчер задач в момент проведения документов или обновления.
Перед ремонтом проверьте сам диск. Если на нём есть битые сектора, восстановленная база повредится снова. Свободного места на разделе должно быть хотя бы вдвое больше размера 1Cv8.1CD: утилиты создают временные файлы.
Утилита chdbfl: проверка физической целостности файловой базы
chdbfl.exe поставляется вместе с платформой и лежит в папке bin установленной версии. Типичный путь:
C:\Program Files\1cv8\8.3.24.1691\bin\chdbfl.exe
Номер версии в пути будет вашим. Берите утилиту той же версии платформы, на которой работает база, или новее.
Как запустить проверку:
- Убедитесь, что база закрыта у всех. Утилита работает только при монопольном доступе к файлу.
- Запустите
chdbfl.exeдвойным щелчком. Откроется небольшое окно. - В поле имени файла укажите полный путь к
1Cv8.1CD(кнопка с многоточием открывает проводник). - Включите флажок «Исправлять обнаруженные ошибки».
- Нажмите «Выполнить» и дождитесь окончания. На базе в несколько гигабайт это занимает от минут до часа.
В окне утилиты появится протокол: какие таблицы проверены, где найдены ошибки, что исправлено. Сохраните его текст: если дальше придётся обращаться к специалисту, протокол сэкономит время.
Сначала можно прогнать chdbfl без флажка исправления. Так вы увидите масштаб проблемы, ничего не меняя в файле. Если ошибок десятки тысяч, сразу планируйте перенос в новую базу.
Что делать после chdbfl:
- ✅ ошибок не найдено или все исправлены — откройте базу в режиме 1С:Предприятие и проверьте последние документы;
- ⚠️ ошибки исправлены, но часть данных пропала — переходите к тестированию в Конфигураторе;
- ❌ утилита падает или не открывает файл — сразу к переносу в новую базу или к резервной копии.
chdbfl лечит только файловый вариант. К базе на MS SQL или PostgreSQL она не применяется: для них есть свои средства (см. раздел про клиент-сервер).
Тестирование и исправление информационной базы в Конфигураторе
Когда файл физически цел, но данные внутри противоречат друг другу, нужна логическая проверка. Она есть в Конфигураторе.
Откройте базу в режиме Конфигуратор и выберите Администрирование → Тестирование и исправление. Для этого режима нужен монопольный доступ, так что пользователей в базе быть не должно.
Какие флажки ставить
| Проверка | Что делает | Когда нужна |
|---|---|---|
| Реиндексация таблиц информационной базы | Перестраивает индексы | Медленный поиск, ошибки при отборах |
| Проверка логической целостности | Ищет противоречия в структуре данных | Почти всегда |
| Проверка ссылочной целостности | Находит ссылки на несуществующие объекты | «Объект не найден» в документах |
| Пересчёт итогов | Заново считает остатки и обороты | Отчёты не сходятся с документами |
| Сжатие таблиц информационной базы | Убирает пустое место в файле | Файл сильно вырос после удалений |
| Реструктуризация таблиц информационной базы | Пересоздаёт таблицы по структуре конфигурации | Повреждена структура, «Нарушение целостности» |
При повреждении файла включите все шесть. Реструктуризация — самая долгая операция, на больших базах она идёт часами.
Режимы и реакции на ошибки
Вверху окна выберите режим «Тестирование и исправление». Режим «Тестирование» только покажет ошибки.
Ниже два важных переключателя:
- 🔗 При наличии ссылок на несуществующие объекты: «Создавать объекты», «Удалять ссылки», «Не изменять». Выбирайте «Создавать объекты». Программа создаст объекты-заглушки с пометкой, и вы увидите, какие документы ссылались на пропавшие данные. «Удалять ссылки» молча очистит реквизиты, и найти потери будет сложнее.
- 🧩 При частичной потере данных объектов: «Создавать объекты», «Удалять объекты», «Не изменять». Здесь тоже безопаснее «Создавать объекты».
Нажмите «Выполнить». После окончания в окне служебных сообщений Конфигуратора будет список найденного и исправленного.
Что проверить после исправления
- Откройте базу в режиме 1С:Предприятие.
- Найдите созданные объекты-заглушки: их наименование обычно начинается с «Объект не найден». Поищите по этой фразе в справочниках контрагентов и номенклатуры.
- Сравните остатки по основным счетам с последней сданной отчётностью: оборотно-сальдовая ведомость за прошлый квартал должна совпасть с цифрами, которые вы сдавали.
- Перепроведите документы за период, где нашлись битые ссылки, если программа это позволяет.
Запуск без интерфейса
Ту же проверку можно запустить из командной строки, например ночным заданием:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogIntegrity -RecalcTotals -IBCompression -Rebuild -BadRefCreate -BadDataCreate /Out "D:\Logs\check.txt"
Ключи соответствуют флажкам окна: -ReIndex — реиндексация, -LogIntegrity — логическая целостность, -RecalcTotals — пересчёт итогов, -IBCompression — сжатие, -Rebuild — реструктуризация. Для проверки без исправления добавьте -TestOnly. Результат запишется в файл, указанный в /Out.
Новая пустая база: перенос данных через выгрузку .dt
Если chdbfl и Конфигуратор не справились, данные переносят в свежий файл. Новая база создаётся с чистой структурой, а в неё загружается всё, что удалось прочитать из старой.
Основной путь: выгрузка и загрузка .dt
- Откройте повреждённую базу в Конфигураторе.
- Выполните
Администрирование → Выгрузить информационную базуи сохраните файл.dt. - В окне запуска 1С нажмите «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации». Укажите новую папку.
- Откройте новую базу в Конфигураторе.
- Выполните
Администрирование → Загрузить информационную базуи укажите сохранённый.dt. - Дождитесь окончания загрузки, откройте базу в режиме 1С:Предприятие и проверьте данные.
Выгрузка в .dt сама по себе — хороший тест. Если она проходит без ошибок, база по сути читаемая, а новый файл часто избавляет от проблем со страницами старого.
Загрузка .dt полностью заменяет содержимое базы, в которую загружаете. Никогда не загружайте файл в рабочую базу по ошибке: выберите именно новую, пустую.
Если .dt не выгружается
Выгрузка обрывается с ошибкой на повреждённой таблице. Тогда действуйте по частям:
- Сохраните конфигурацию:
Конфигурация → Сохранить конфигурацию в файл(файл.cf). Если основная конфигурация не сохраняется, попробуйте сохранить конфигурацию базы данных через пунктКонфигурация → Конфигурация базы данных. - Создайте новую базу и загрузите в неё этот
.cfчерезКонфигурация → Загрузить конфигурацию из файла, затем обновите конфигурацию базы данных. - Перенесите данные обработкой выгрузки и загрузки данных в XML, которую специалисты по 1С используют для переноса между базами одинаковой конфигурации. Её запускают в обеих базах через
Файл → Открыть. - Выгружайте объекты группами: сначала справочники, потом документы по годам. Так вы найдёте, на каком именно объекте ломается чтение, и перенесёте всё остальное.
Объекты, которые не читаются, придётся восстановить из резервной копии или ввести заново. Обычно это несколько документов за дни, когда случился сбой.
Если база клиент-серверная
В клиент-серверном варианте файла 1Cv8.1CD нет: данные лежат в СУБД (MS SQL Server или PostgreSQL). Поэтому и чинят по-другому.
| Уровень | Чем проверять | Кто делает |
|---|---|---|
| Таблицы СУБД | MS SQL: DBCC CHECKDB; PostgreSQL: pg_amcheck (версия 14 и новее) | Администратор СУБД |
| Данные 1С | Администрирование → Тестирование и исправление в Конфигураторе | Администратор 1С |
| Кэш сервера и клиента | Очистка сеансового кэша, запуск клиента с /ClearCache | Администратор 1С |
Пример проверки базы на MS SQL Server:
DBCC CHECKDB ('buh_base') WITH NO_INFOMSGS;
Если DBCC CHECKDB нашёл ошибки, не запускайте сразу варианты с потерей данных (REPAIR_ALLOW_DATA_LOSS). Сначала восстановите копию базы
из бэкапа СУБД на соседнее имя и сравните. Ремонт с потерей данных удаляет повреждённые страницы целиком, и 1С потом увидит дыры в таблицах.
Ошибки «повреждения» на сервере 1С часто оказываются не в данных, а в кэше кластера. Очистка серверного кэша требует остановки службы агента сервера 1С.
Остановка службы сервера 1С обрывает сеансы всех пользователей всех баз кластера. Делайте это вне рабочего времени и предупредите людей заранее.
Главное средство восстановления в клиент-серверном варианте — регулярные резервные копии на уровне СУБД. Выгрузка .dt на больших серверных базах занимает часы и не заменяет бэкап СУБД.
Профилактика: резервные копии и защита файла от сбоев
Большинство повреждений файловых баз предсказуемо. Защититься можно за один вечер.
Резервное копирование
В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) для файловой базы есть встроенное копирование: Администрирование → Обслуживание → Резервное копирование и восстановление. Там задают расписание, папку для копий и сколько копий хранить.
Ориентиры, которые работают на практике:
- 📅 ежедневная копия в конце рабочего дня;
- 🗂️ хранить не меньше 7–14 последних копий: повреждение замечают не сразу;
- 💾 копии держать на другом диске или в другом месте, не рядом с базой;
- 🔁 раз в месяц проверять, что копия реально разворачивается в отдельную базу.
Простую копию можно сделать и вручную: закрыть базу и скопировать 1Cv8.1CD. Копировать файл при открытой базе нельзя: получится копия с теми же «рваными» страницами.
Защита от причин повреждений
- ИБП на компьютер или сервер, где лежит база. Без него каждое отключение света — риск.
- Исключение в антивирусе для папки с базами и для процессов
1cv8.exe,1cv8c.exe. - Стабильная сеть. Файловую базу через Wi-Fi или VPN по общей папке открывать не стоит. Для удалённой работы безопаснее терминальный сервер или публикация на веб-сервере.
- Ограничение числа пользователей. Файловый вариант рассчитан на небольшие коллективы. Когда одновременно работают больше 10–15 человек, конфликты записи и повреждения случаются чаще — пора думать о клиент-серверном варианте.
- Регулярный профилактический прогон
chdbflбез исправления, например раз в месяц, чтобы ловить проблемы на раннем этапе. - Корректный выход из 1С, а не снятие процесса, особенно при закрытии месяца и обновлении.
Если ничего не помогло: восстановление из резервной копии
Когда файл разрушен настолько, что не открывается ни утилитой, ни Конфигуратором, остаётся резервная копия.
Порядок такой:
- Не удаляйте повреждённую базу. Переименуйте папку, например в
Buh_broken. - Восстановите последнюю копию в новую папку: из
.dt— через загрузку в пустую базу, из архива1Cv8.1CD— простым копированием файла. - Откройте восстановленную базу и определите дату последнего документа в ней.
- Документы, созданные после этой даты, придётся ввести заново. Часть можно найти в старой базе, если она хоть частично читается: откройте её копию и посмотрите списки документов.
- Банковские выписки загрузите повторно из клиент-банка, входящие документы ЭДО — повторно из сервиса.
Если копии нет вообще, а файл не читается, обратитесь к специалисту по восстановлению баз 1С. Ему понадобятся оригинальный повреждённый файл и протокол chdbfl. Именно поэтому их нельзя удалять и перезаписывать.