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