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