Как найти и исправить повреждения в информационной базе 1С 8.3
Содержание
Проверить базу 1С на целостность можно двумя инструментами платформы: утилитой chdbfl.exe (только файловая база, физическая структура файла) и режимом Администрирование → Тестирование и исправление в Конфигураторе (любая база, логика данных и ссылки). Для клиент-серверной базы к ним добавляется проверка средствами СУБД: DBCC CHECKDB в MS SQL или amcheck в PostgreSQL.
Порядок такой: сначала копия, потом физическая проверка, потом логическая. Исправление запускайте только после того, как прогнали тестирование без исправления и прочитали отчёт. Порядок одинаков для любой конфигурации: БП, ЗУП, УТ, ERP — это функции платформы, а не прикладного решения.
Признаки того, что базу 1С пора проверять на ошибки
Повреждение редко выглядит как одна понятная ошибка. Чаще база «странно себя ведёт» в нескольких местах сразу.
Типичные симптомы:
- 🔴 в полях документов и справочников вместо значения стоит
<Объект не найден> (45:b8f1...); - 🔴 при открытии базы или конкретного списка появляется
Ошибка формата потокаилиНарушение целостности структуры конфигурации; - 🔴 платформа сообщает, что файл базы данных повреждён, и не открывает базу;
- 🟠 отчёт по регистру показывает остаток, которого нет по документам, или отрицательный остаток там, где его быть не может;
- 🟠 программа аварийно закрывается на одном и том же документе или элементе справочника;
- 🟡 файл
1Cv8.1CDрезко вырос, а данных больше не стало.
Частые причины: отключение питания во время записи, принудительное завершение процесса 1cv8.exe, работа с файловой базой по сети через нестабильный канал, сбои диска, антивирус, который блокирует файл базы на запись.
1Cv8.1CD. Работайте с копией файла и начинайте с утилиты chdbfl.Подготовка к проверке целостности базы 1С
Тестирование с исправлением меняет данные. Если что-то пойдёт не так, откатиться можно только к копии.
1. Сделайте копию
- Файловая база. Закройте все сеансы и скопируйте каталог базы целиком (главное — файл
1Cv8.1CD). Выгрузка в.dtна повреждённой базе может не пройти, поэтому копия файла надёжнее. - Клиент-серверная база
. Полная резервная копия средствами СУБД:
BACKUP DATABASEв MS SQL,pg_dumpв PostgreSQL. Плюс выгрузка.dt, если она проходит.
Не запускайте исправление без резервной копии. Режимы «Удалять объекты» и «Очищать ссылки» стирают данные безвозвратно.
2. Обеспечьте монопольный доступ
Тестирование и исправление, как и chdbfl, работает только когда в базе нет других пользователей. Все сеансы будут завершены, несохранённые документы пропадут. Делайте проверку вечером или в выходные и предупредите людей заранее.
Для серверной базы включите блокировку начала сеансов в свойствах информационной базы в консоли администрирования кластера. Так никто не зайдёт, пока идёт проверка. Фоновые и регламентные задания тоже стоит заблокировать там же.
3. Проверьте место на диске
Реиндексация, сжатие и реструктуризация создают временные копии таблиц. Ориентируйтесь на свободное место не меньше размера самой базы. Если диск заполнится посреди операции, получите новую проблему вместо исправленной старой.
Тестирование и исправление информационной базы в Конфигураторе
Это основной инструмент. Работает для файловых и серверных баз одинаково.
Как открыть
- Запустите 1С в режиме Конфигуратор под пользователем с правами администратора.
- В меню выберите
Администрирование → Тестирование и исправление.... - Откроется форма с набором флажков и режимами реакции на ошибки.
Что означает каждая проверка
| Флажок | Что делает | Когда нужен |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы всех таблиц | Падения на списках, медленный отбор, после сбоя питания |
| Проверка логической целостности | Ищет нарушения внутренней структуры данных | Базовая проверка, включайте всегда |
| Проверка ссылочной целостности | Находит ссылки на несуществующие объекты | <Объект не найден> в полях |
| Пересчёт итогов | Заново считает итоги регистров накопления и бухгалтерии | Остатки не сходятся с документами |
| Сжатие таблиц | Убирает пустое место в файле базы | Файл 1Cv8.1CD разросся |
| Реструктуризация таблиц | Пересоздаёт таблицы базы | Тяжёлые случаи, когда остальное не помогло |
Реструктуризация — самая долгая операция. На базе в десятки гигабайт она может идти несколько часов. Включайте её отдельным проходом и только по необходимости.
Режим: тестирование или исправление
В форме есть переключатель между простым тестированием и тестированием с исправлением. Первый прогон делайте без исправления. Программа покажет список проблем в окне служебных сообщений, но ничего не изменит.
Дальше настройте реакцию на найденное:
При наличии ссылок на несуществующие объекты:
- Создавать объекты — платформа создаст «заглушки» на месте потерянных объектов. Документы сохранят ссылку, а вы потом найдёте эти заглушки и разберётесь с ними вручную.
- Очищать ссылки — поле в документе станет пустым. Информация о том, что там было, пропадёт.
- Не изменять — только запись в отчёт.
При частичной потере данных объектов:
- Создавать объекты — недостающие данные будут восстановлены как заготовка;
- Удалять объекты — повреждённые объекты будут удалены целиком.
В рабочей базе почти всегда выбирайте «Создавать объекты». Пустое поле в проведённом документе обнаружить намного сложнее, чем элемент-заглушку в справочнике. Заглушки легко найти по наименованию со словами «Объект не найден» и заменить на правильные значения.
Что делать после проверки
- Сохраните текст из окна служебных сообщений: это ваш протокол.
- Если создавались заглушки, найдите их в справочниках и замените ссылки на правильные объекты.
- Перепроведите документы за период, где были ошибки, если менялись итоги.
- Сформируйте контрольные отчёты (оборотно-сальдовую ведомость, остатки) и сравните с данными до сбоя.
Для большой серверной базы в форме есть ограничение времени выполнения и продолжение с места остановки. Это позволяет разбить проверку на несколько ночей.
Проверка физической целостности файловой базы утилитой chdbfl
chdbfl.exe проверяет сам файл 1Cv8.1CD: страницы, внутренние таблицы, индексы на уровне файлового формата 1С. В отличие от Конфигуратора, ей не нужно запускать платформу и входить в базу. Поэтому она выручает, когда база вообще не открывается.
Где найти
Утилита лежит в каталоге bin установленной платформы, например:
C:\Program Files\1cv8\8.3.24.1691\bin\chdbfl.exe
Номер версии в пути будет вашим. Берите утилиту из той же версии платформы, с которой работает база.
Как запустить
- Убедитесь, что базу никто не открыл: ни пользователи, ни Конфигуратор, ни фоновые задания.
- Запустите
chdbfl.exeот имени администратора. - В поле имени файла укажите путь к
1Cv8.1CD. - Первый раз оставьте флажок исправления ошибок снятым и нажмите «Выполнить».
- Изучите результат. Если ошибки есть — включите флажок исправления и запустите повторно, но уже на копии файла.
- Когда копия исправлена и открывается, подложите её вместо рабочего файла.
Не запускайте chdbfl на файле, который лежит на сетевом диске и открыт с другого компьютера. Скопируйте файл на локальный диск сервера и проверяйте там.
Почему сначала chdbfl, а потом Конфигуратор
Логическая проверка в Конфигураторе читает данные через платформу. Если повреждена сама структура файла, Конфигуратор может упасть посреди тестирования. Поэтому для файловой базы порядок жёсткий: chdbfl → тестирование и исправление.
Как проверить целостность клиент-серверной базы на MS SQL и PostgreSQL
Для серверной базы chdbfl не применяется: данные хранит СУБД. Проверка идёт в два слоя: средствами СУБД (страницы и индексы) и Конфигуратором (логика 1С).
MS SQL Server
Основная команда — DBCC CHECKDB. Выполните её в SQL Server Management Studio:
DBCC CHECKDB (N'buh_base') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Если вывод пустой — физических ошибок нет. Если есть сообщения об ошибках согласованности, сначала восстановите базу из последней исправной копии.
Параметры REPAIR_REBUILD и REPAIR_ALLOW_DATA_LOSS требуют однопользовательского режима базы. Второй, как следует из названия, может удалить повреждённые страницы вместе с данными. Используйте его только когда копии нет, и обязательно на копии базы.
💡 Проверьте свойство базы Page Verify: должно стоять CHECKSUM. Тогда SQL Server заметит повреждение страницы при первом же чтении.
PostgreSQL
Встроенного аналога DBCC CHECKDB в PostgreSQL нет, но есть рабочие приёмы:
- Проверка индексов через расширение
amcheck. В PostgreSQL 14 и новее есть консольная утилита:
pg_amcheck -d buh_base --heapallindexed
- Полное чтение данных через выгрузку. Если какая-то страница таблицы повреждена,
pg_dumpостановится с ошибкой и назовёт таблицу:
pg_dump -d buh_base -Fc -f /backup/buh_base_check.dump
- Контрольные суммы страниц. Если кластер создан с ними, при чтении повреждённой страницы в журнале сервера будет ошибка проверки контрольной суммы.
Проблемный индекс перестраивается командой REINDEX. Повреждение таблицы на уровне СУБД безопасно лечится только восстановлением из копии.
Затем — Конфигуратор
Когда СУБД чиста, запустите тестирование и исправление, как описано выше. Для серверной базы нагрузку несёт сервер СУБД, поэтому проверку больших баз ставьте на время без пользователей и без регламентных заданий обслуживания СУБД.
| Тип базы | Физический уровень | Логический уровень |
|---|---|---|
| Файловая | chdbfl.exe | Тестирование и исправление |
| MS SQL | DBCC CHECKDB | Тестирование и исправление |
| PostgreSQL | pg_amcheck, pg_dump | Тестирование и исправление |
bdbcheck и Berkeley DB: есть ли такая проверка в 1С 8.3
На форумах и в некоторых инструкциях встречается совет проверить базу утилитой bdbcheck «для баз на движке Berkeley DB». Для 1С:Предприятия 8.3 этот совет не работает
.
Что есть на самом деле:
- 📁 файловая база 1С 8 хранится в собственном формате платформы, в одном файле
1Cv8.1CD; - 🗄️ серверная база хранится в MS SQL Server, PostgreSQL, Oracle или IBM Db2;
- 🧰 штатные средства проверки —
chdbfl.exe, режим тестирования и исправления и инструменты самой СУБД.
Утилиты с названием bdbcheck в дистрибутиве платформы 8.3 нет. Если вам предлагают скачать её со стороннего сайта — не делайте этого. Исполняемый файл из неизвестного источника, получивший доступ к бухгалтерской базе, опаснее любого сбоя индекса.
Если вы искали проверку базы, которая не открывается, ваш инструмент — chdbfl для файловой базы или средства СУБД для серверной.
Автоматическая проверка базы 1С из командной строки
Тестирование и исправление можно запускать без интерфейса, ключом /IBCheckAndRepair. Это удобно для ночных заданий в Планировщике Windows.
Пример для файловой базы — только тестирование, с протоколом в файл:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -LogIntegrity -LogAndRefsIntegrity -TestOnly /Out"D:\Logs\check.log" /DisableStartupMessages
Для серверной базы вместо /F используется /S"сервер\имя_базы".
Основные параметры:
| Параметр | Действие |
|---|---|
-ReIndex | Реиндексация таблиц |
-LogIntegrity | Проверка логической целостности |
-LogAndRefsIntegrity | Логическая и ссылочная целостность |
-RecalcTotals | Пересчёт итогов |
-IBCompression | Сжатие таблиц |
-Rebuild | Реструктуризация таблиц |
-TestOnly | Только тестирование, без исправления |
-BadRefCreate / -BadRefClear / -BadRefNone | Реакция на битые ссылки: создать, очистить, не менять |
-BadDataCreate / -BadDataDelete | Реакция на частичную потерю данных |
Пароль в bat-файле лежит открытым текстом. Создайте для регламентных проверок отдельного пользователя 1С и ограничьте доступ к файлу задания.
Для расписания разумно ставить в ночь только тестирование (-TestOnly), а исправление запускать вручную после чтения протокола.
Профилактика повреждений и резервное копирование базы 1С
Проверка лечит последствия. Большинство причин повреждений устраняется организацией работы.
Что снижает риск
- 🔌 ИБП на сервере или компьютере, где лежит файловая база, с корректным завершением работы при пропадании питания;
- 🌐 файловая база не по Wi-Fi и VPN. Для удалённой работы — терминальный сервер , веб-публикация или переход на клиент-серверный вариант;
- 🛡️ исключения в антивирусе для каталога базы и файлов
.1CD; - 💾 исправный диск: следите за SMART и местом на томе с базой;
- 🚫 не завершайте
1cv8.exeчерез диспетчер задач во время записи или проведения документов.
Регламент резервного копирования
Минимальная схема для небольшой организации:
| Что | Как часто | Сколько хранить |
|---|---|---|
| Копия файла базы или бэкап СУБД | Ежедневно, ночью | 7–14 дней |
Выгрузка .dt | Еженедельно | 1–2 месяца |
| Копия перед обновлением конфигурации | Каждый раз | До следующего обновления |
| Копия на внешний носитель или в другое место | Еженедельно | По политике компании |
Копия, которую ни разу не пробовали развернуть, — это надежда, а не копия. Раз в месяц поднимайте бэкап в отдельную тестовую базу и открывайте его.