Администрирование · 10 мин
Контроль целостности в 1С: что это и как правильно выполнить проверку базы
Что такое контроль целостности в 1С, где находится эта проверка, какие ошибки она выявляет и как безопасно восстановить базу без потери данных.
Контроль целостности в 1С — это проверка информационной базы на предмет логических и физических повреждений: битых ссылок, нарушенных индексов, повреждённых таблиц и расхождений между данными. Такая проверка нужна, когда программа начинает выдавать ошибки вида «Ошибка СУБД», «Файл базы данных повреждён», зависает при открытии документов или показывает некорректные остатки.
Под контролем целостности чаще всего понимают два механизма. Первый — штатная процедура «Тестирование и исправление» в конфигураторе, которая проверяет базу по нескольким критериям и может автоматически исправлять найденные проблемы. Второй — проверка физической целостности файловой базы утилитой chdbfl.exe, которая работает на уровне самого файла 1Cv8.1CD. Для клиент-серверных баз на SQL аналогичные проверки выполняются средствами самой СУБД.
Регулярный контроль целостности — часть нормального обслуживания базы, а не только реакция на аварию. Проверку стоит запускать после внезапного отключения электричества, сбоев сети при работе с файловой базой по сети, аварийного завершения процесса 1С, а также в профилактическом порядке — например, раз в месяц для активно используемых баз.
Что именно проверяется при контроле целостности
Процедура «Тестирование и исправление» предлагает несколько независимых проверок, каждая из которых отвечает за свой слой данных. Реиндексация перестраивает индексы таблиц — это ускоряет поиск и устраняет ошибки, связанные с повреждёнными индексами. Проверка логической целостности сверяет корректность данных с точки зрения логики конфигурации: ссылки, значения реквизитов, соответствие записей регистров документам.
Проверка ссылочной целостности ищет «битые ссылки» — ситуации, когда реквизит документа указывает на объект, которого уже не существует в базе. Такое случается после удаления объектов без контроля ссылочной целостности или при сбоях во время записи. Проверка физической целостности (для файловых баз через chdbfl.exe) анализирует сам файл данных: заголовки таблиц, цепочки страниц, контрольные структуры.
Отдельно стоит пункт «Пересчёт итогов» — он восстанавливает итоговые данные регистров накопления и бухгалтерии. Если отчёты показывают странные остатки при корректных документах, часто помогает именно пересчёт итогов, а не полное тестирование.
Когда нужно запускать проверку: признаки повреждения базы
Запускать контроль целостности стоит не наугад, а при появлении конкретных симптомов. Типичные признаки: ошибка «Ошибка СУБД: файл базы данных повреждён» при запуске, аварийное завершение программы при открытии определённого документа или справочника, сообщения «Объект не найден» вместо нормальных значений в реквизитах, расхождение остатков в отчётах при корректных проводках.
Также проверка обязательна после внештатных событий: отключения питания во время работы, разрыва сетевого соединения при работе с файловой базой по сети, принудительного завершения процесса 1С через диспетчер задач, переполнения диска во время записи данных. Даже если база после этого открывается нормально, скрытые повреждения могут проявиться позже — например, при обновлении конфигурации.
Проверяйте chdbfl.exe на копии базы
Проверка ссылочной целостности
Пересчёт итогов регистров
Реиндексация таблиц
Как выполнить контроль целостности через конфигуратор
Основной инструмент — «Тестирование и исправление» в конфигураторе. Процедура требует монопольного доступа к базе: все пользователи должны выйти, фоновые задания — завершиться. Для файловой базы достаточно закрыть все сеансы, для клиент-серверной — установить блокировку сеансов в консоли кластера или завершить соединения.
Порядок действий: откройте конфигуратор, перейдите в меню «Администрирование» → «Тестирование и исправление». Отметьте нужные проверки — для профилактики обычно выбирают реиндексацию, проверку логической и ссылочной целостности. В нижней части окна выберите режим: «Тестирование» (только диагностика без изменений) или «Тестирование и исправление» (с автоматическим устранением ошибок). Сначала рекомендуется запустить только тестирование, оценить список ошибок и уже потом решать, что исправлять.
- 1Сделайте резервную копию базы (выгрузку в .dt или копию файла 1Cv8.1CD)
- 2Завершите все сеансы пользователей и фоновые задания
- 3Откройте конфигуратор → Администрирование → Тестирование и исправление
- 4Отметьте нужные проверки и выберите режим «Тестирование»
- 5Изучите список найденных ошибок, при необходимости запустите режим с исправлением
- 6Проверьте работу базы после завершения процедуры
Время выполнения зависит от размера базы и выбранных проверок: для небольшой файловой базы это минуты, для крупной клиент-серверной — часы. Прерывать процесс нельзя: остановка на середине может усугубить повреждения.
Проверка файловой базы утилитой chdbfl.exe
Если файловая база не открывается вообще и конфигуратор недоступен, используется утилита chdbfl.exe из каталога bin установленной платформы 1С. Она проверяет физическую целостность файла 1Cv8.1CD на низком уровне — там, где «Тестирование и исправление» уже бессильно, потому что база просто не запускается.
Запустите утилиту, укажите путь к файлу базы, отметьте флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить». Работайте только с копией файла: утилита изменяет данные напрямую, и откатить её действия невозможно. Если chdbfl сообщает об успешном исправлении, после этого базу стоит дополнительно прогнать через «Тестирование и исправление» в конфигураторе — физическая целостность восстановлена, но логические ошибки могли остаться.
Особенности для клиент-серверных баз
Если база работает на MS SQL Server, PostgreSQL или другой СУБД, chdbfl.exe не применяется — физическую целостность проверяют штатными средствами СУБД. Для MS SQL Server это команда DBCC CHECKDB, для PostgreSQL — проверки на уровне кластера и анализ журналов. Эти операции выполняет администратор баз данных, вмешательство без опыта рискованно.
Процедура «Тестирование и исправление» из конфигуратора при этом остаётся актуальной: она проверяет логику данных 1С, а не физические структуры СУБД. Для больших баз её часто запускают выборочно — сначала реиндексацию и пересчёт итогов, а полную проверку ссылочной целостности планируют на нерабочее время.
Сравнение способов проверки
Универсальный способ для любых баз; проверяет логику, ссылки, индексы, итоги. Требует монопольного доступа
Только файловые базы; спасает, когда база не открывается. Работает на уровне файла, логику не проверяет
Только клиент-серверные базы; проверяют физическую целостность на уровне СУБД. Требуют квалификации администратора БД
Риски и ограничения процедуры
Главный риск — режим «Тестирование и исправление» с включённой опцией обработки битых ссылок. При её работе объекты с повреждёнными ссылками могут быть очищены или удалены. Иногда это единственный способ вернуть базу к жизни, но данные при этом теряются безвозвратно. Поэтому резервная копия перед исправлением — не рекомендация, а обязательное условие.
Второе ограничение — процедура не лечит причины. Если база регулярно повреждается из-за нестабильной сети, диска с бэд-секторами или отключений питания, контроль целостности будет бороться со следствиями. Нужно устранять источник: проверять дисковую подсистему, ставить ИБП, отказаться от размещения файловой базы на сетевом диске с нестабильным соединением.
Профилактика: как снизить риск повреждений
Надёжнее всего — регулярное резервное копирование. Для файловых баз настройте выгрузку .dt по расписанию или копирование файла базы в нерабочее время; для клиент-серверных — штатные бэкапы СУБД. Копия, сделанная до сбоя, ценнее любой процедуры восстановления.
Также имеет смысл плановое обслуживание: периодическая реиндексация и пересчёт итогов, мониторинг свободного места на диске, использование ИБП на сервере, отказ от работы с файловой базой по Wi-Fi. Эти меры не отменяют контроль целостности, но заметно снижают частоту ситуаций, когда он нужен в аварийном режиме.
Что важно запомнить
Контроль целостности — это диагностика и исправление базы 1С через «Тестирование и исправление» в конфигураторе, а для файловых баз — через chdbfl.exe. Проверка запускается при ошибках СУБД, битых ссылках и неверных остатках, всегда в монопольном режиме и только после создания резервной копии.
Частые вопросы о контроле целостности в 1С
Контроль целостности и тестирование и исправление — это одно и то же?
На практике да: под контролем целостности обычно понимают именно процедуру «Тестирование и исправление» в конфигураторе. В узком смысле контроль целостности — это отдельные виды проверок внутри неё (логическая и ссылочная), но в повседневной работе термины используют как синонимы.
Можно ли запускать проверку, пока пользователи работают?
Нет. Процедура требует монопольного доступа: при активных сеансах конфигуратор откажет в запуске. Кроме того, исправление данных «на ходу» привело бы к конфликтам и новым ошибкам. Проверку планируют на нерабочее время.
Удалит ли проверка какие-то документы?
В режиме «Тестирование» — нет, это только диагностика. В режиме «Тестирование и исправление» при обработке битых ссылок объекты могут быть очищены или удалены. Именно поэтому перед исправлением делают копию базы и сначала изучают список ошибок в режиме диагностики.
База не открывается, конфигуратор выдаёт ошибку. Что делать?
Для файловой базы сделайте копию файла 1Cv8.1CD и прогоните копию через chdbfl.exe из каталога платформы с включённым исправлением. Если после этого база открылась — дополнительно выполните «Тестирование и исправление» в конфигураторе. Для клиент-серверной базы обратитесь к администратору СУБД.
Как часто нужно проверять базу в профилактических целях?
Жёсткой нормы нет. Для активно используемой файловой базы разумно запускать реиндексацию и проверку логической целостности примерно раз в месяц, а полную проверку ссылочной целостности — реже или после сбоев. Клиент-серверные базы при штатных бэкапах СУБД требуют такой проверки реже — в основном при появлении симптомов.
Поможет ли контроль целостности, если отчёты показывают неверные остатки?
Часто да, но не всегда. Если документы корректны, а остатки неверны — помогает пересчёт итогов регистров. Если же ошибка в самих проводках или в алгоритмах конфигурации, проверка целостности её не исправит: потребуется анализ данных и, возможно, перепроведение документов.