К статье
Практический материал

Администрирование · 10 мин

Как провести тестирование и исправление базы 1С

Как провести тестирование и исправление базы 1С: запуск ТиИ в конфигураторе, проверка chdbfl.exe, исправление ошибок, резервные копии и типичные ошибки.

Тестирование и исправление (ТиИ) — штатный механизм платформы 1С:Предприятие, который проверяет физическую и логическую целостность информационной базы и устраняет найденные повреждения. К нему прибегают, когда база начинает вести себя странно: документы не проводятся, отчёты выдают неверные суммы, при открытии объектов появляются ошибки формата потока или «СУБД: ошибка SQL».

Ошибки в базе возникают по предсказуемым причинам: аварийное завершение работы, отключение электричества во время записи, сбои жёсткого диска, разрыв сетевого соединения при файловом режиме, некорректная работа антивируса. Чем раньше обнаружено повреждение, тем выше шанс исправить его штатными средствами без потери данных.

Процедура ТиИ требует монопольного доступа к базе и может занимать от нескольких минут до нескольких часов в зависимости от размера базы и набора включённых проверок. Поэтому важно правильно подготовиться: сделать резервную копию, выгнать пользователей и понимать, какие режимы проверки действительно нужны.

Когда нужно запускать тестирование и исправление

Поводом для проверки служат конкретные симптомы, а не желание «профилактически прогнать базу». Типичные признаки: ошибки «Ошибка формата потока», «Ошибка СУБД», «Файл базы данных повреждён», зависания при проведении конкретных документов, расхождения в отчётах, которые не объясняются данными, пропавшие записи в справочниках или регистрах.

Также ТиИ рекомендуется после аварийных ситуаций: внезапного отключения сервера или компьютера с файловой базой, сбоя дисковой подсистемы, восстановления базы из бэкапа после инцидента. В этих случаях проверка подтверждает, что база цела, либо выявляет повреждения до того, как пользователи начнут работать с битыми данными.

Ошибка формата потокаПовреждены внутренние структуры данных

Проверить chdbfl.exe для файловой базы, затем ТиИ

База не открывается совсемВозможно физическое повреждение файла

Сначала chdbfl.exe, ТиИ запустится только если конфигуратор открывается

Неверные итоги в отчётахНарушена логическая целостность регистров

ТиИ с проверкой логической целостности и пересчётом итогов

Медленная работа без ошибокПроблема производительности, а не целостности

ТиИ не поможет — нужен анализ индексов и запросов

Обязательная подготовка: резервная копия и монопольный доступ

Первое и непреложное правило: перед любым исправлением делается резервная копия. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельный каталог, для клиент-серверной — выполнить выгрузку в dt через конфигуратор (Администрирование → Выгрузить информационную базу) либо средствами СУБД. Исправление изменяет данные безвозвратно: удалённые при чистке объекты восстановить нечем, если копии нет.

Второе условие — монопольный доступ. Все пользователи должны выйти из базы, фоновые задания и регламентные операции — завершиться. В клиент-серверном режиме дополнительно проверьте список активных сеансов в консоли кластера и завершите зависшие соединения. Если в момент исправления кто-то работает в базе, возможны новые повреждения.

Запуск ТиИ в конфигураторе: режимы и проверки

Откройте базу в конфигураторе и перейдите: Администрирование → Тестирование и исправление. В открывшемся окне выбираются проверки и режим работы. Доступны три варианта действий: «Тестирование» (только диагностика без изменений), «Тестирование и исправление» (диагностика с устранением ошибок) и «Не изменять» с отдельными опциями. Разумная тактика — сначала прогнать только тестирование, оценить список ошибок, и лишь затем включать исправление.

Набор проверок зависит от характера проблемы. «Реиндексация таблиц» перестраивает индексы и помогает при ошибках доступа к данным. «Проверка логической целостности» выявляет битые ссылки и рассогласования в данных — основной режим при логических ошибках. «Проверка ссылочной целостности» ищет объекты со ссылками на несуществующие записи. «Пересчёт итогов» восстанавливает итоговые данные регистров. «Сжатие таблиц» уменьшает размер файловой базы, но занимает много времени и не является исправлением ошибок.

Порядок действий
  1. 1
    Сделайте резервную копию базы (файл 1Cv8.1CD или выгрузка dt)
  2. 2
    Завершите все сеансы пользователей и фоновые задания
  3. 3
    Откройте конфигуратор → Администрирование → Тестирование и исправление
  4. 4
    Выберите режим «Тестирование» и нужные проверки, запустите
  5. 5
    Изучите протокол: зафиксируйте перечень найденных ошибок
  6. 6
    Повторите запуск в режиме «Тестирование и исправление»
  7. 7
    После завершения проверьте работоспособность базы и проблемные объекты

Утилита chdbfl.exe для файловых баз

Если файловая база не открывается вообще или конфигуратор падает при попытке запуска ТиИ, используется утилита проверки физической целостности chdbfl.exe. Она находится в каталоге bin установленной платформы, в папке конкретной версии. Утилита работает непосредственно с файлом 1Cv8.1CD и не требует запуска конфигуратора.

Порядок простой: укажите путь к файлу базы, установите флажок «Исправлять обнаруженные ошибки» (или сначала прогоните без него для диагностики) и нажмите «Выполнить». Утилита проверяет физическую структуру файла — страницы данных, индексы, свободные блоки. После её работы обычно удаётся открыть базу в конфигураторе и провести полноценное ТиИ для логических проверок.

Особенности для клиент-серверных баз

В клиент-серверном варианте ТиИ запускается так же — через конфигуратор, но есть нюансы. Во-первых, монопольный доступ обеспечивается через консоль кластера: блокировка сеансов и регламентных заданий. Во-вторых, длительные операции могут упираться в таймауты сервера 1С и СУБД, поэтому большие базы иногда проверяют по частям, выбирая отдельные проверки за один запуск.

Физическая целостность в этом режиме — зона ответственности СУБД. Для MS SQL применяется проверка целостности средствами самой СУБД, для PostgreSQL — аналогичные штатные инструменты. ТиИ поверх клиент-серверной базы решает задачи логического уровня: битые ссылки, итоги регистров, согласованность данных конфигурации.

Сравнение инструментов

ТиИ в конфигураторе

Универсальный инструмент для логических ошибок и ссылочной целостности. Требует, чтобы база открывалась в конфигураторе.

Chdbfl.exe

Физическая проверка файловых баз, работает даже когда конфигуратор не открывает базу. Не исправляет логических ошибок.

Средства СУБД

Для клиент-серверных баз: проверка физической целостности на уровне базы данных. Требует навыков администрирования СУБД.

Восстановление из бэкапа

Самый надёжный вариант при серьёзных повреждениях, но теряются данные, введённые после создания копии.

Анализ результатов и типичные ошибки

После завершения ТиИ выводится протокол с перечнем найденных и исправленных проблем. Внимательно изучите его: записи вида «объект удалён» или «ссылка обнулена» означают, что данные потеряны, и нужно решить, восстанавливать ли их вручную из копии. Отсутствие ошибок в протоколе не гарантирует корректность учёта — логические проверки не заменяют сверку данных.

После исправления обязательно проверьте проблемные места: откройте документы, которые не проводились, сформируйте отчёты, которые давали неверные цифры, сравните ключевые итоги с данными до сбоя. Только после такой проверки база возвращается пользователям в работу.

Типичные ошибки
01
Запуск исправления без резервной копии — необратимая потеря данных при ошибках очистки
02
Включение всех проверок сразу на большой базе — процесс длится часами и блокирует работу
03
Использование ТиИ для ускорения базы — это инструмент восстановления, а не оптимизации
04
Работа пользователей во время исправления — риск новых повреждений
05
Игнорирование протокола — удалённые объекты остаются незамеченными до срыва отчётности

Что делать, если ТиИ не помогло

Если после ТиИ и chdbfl.exe ошибки сохраняются, остаются два пути. Первый — восстановление из резервной копии с последующим переносом данных, введённых после даты копии (вручную или через выгрузку-загрузку отдельных документов). Второй — создание новой чистой базы и перенос в неё данных штатными средствами обмена или обработками переноса.

При повторяющихся повреждениях ищите первопричину: проверьте диск на ошибки, стабильность электропитания, надёжность сети для файлового режима, настройки антивируса (каталог базы должен быть в исключениях). Лечить базу раз за разом, не устранив источник сбоев, бессмысленно — повреждения будут возвращаться.

Маршрут решения

Как выбрать действие

База открывается, но есть логические ошибкиТиИ в конфигураторе: сначала диагностика, затем исправление
Файловая база не открывается совсемСначала chdbfl.exe, затем ТиИ
После исправления ошибки осталисьВосстановление из резервной копии с переносом свежих данных
Повреждения повторяются регулярноДиагностика диска, сети, питания и настроек антивируса
Итог

Что важно запомнить

Тестирование и исправление — штатный способ восстановления целостности базы 1С. Всегда начинайте с резервной копии и монопольного доступа, сначала выполняйте диагностику без изменений, для неоткрывающихся файловых баз применяйте chdbfl.exe, а после исправления проверяйте протокол и работоспособность проблемных объектов.

Частые вопросы

Сколько времени занимает тестирование и исправление?

Зависит от размера базы, набора проверок и скорости дисковой подсистемы. Небольшая файловая база с одной проверкой может пройти за несколько минут, а полная проверка большой клиент-серверной базы — занять часы. Планируйте процедуру на нерабочее время и включайте только необходимые проверки.

Можно ли прервать ТиИ, если процесс завис?

Резкое прерывание (снятие процесса) может оставить базу в повреждённом состоянии, поэтому его избегают. Сначала убедитесь, что процесс действительно не реагирует долгое время, а не выполняет тяжёлую операцию вроде сжатия таблиц. Если прерывание неизбежно — после него проверьте базу повторно и будьте готовы к восстановлению из копии.

Чем отличается реиндексация от проверки логической целостности?

Реиндексация перестраивает индексы таблиц — это помогает при ошибках доступа к данным и иногда ускоряет поиск. Проверка логической целостности анализирует сами данные: ссылки между объектами, корректность записей регистров. Это разные проверки, решающие разные задачи, их часто запускают вместе.

Удаляет ли ТиИ мои документы?

В режиме исправления при обнаружении ссылок на несуществующие объекты возможны варианты: создание объекта-заглушки, очистка ссылки или удаление объекта с битой ссылкой — в зависимости от выбранных настроек. Поэтому протокол после исправления изучают обязательно, а резервная копия позволяет вернуть ошибочно удалённое.

Нужно ли запускать ТиИ регулярно для профилактики?

Регулярная профилактическая проверка не обязательна, если база работает стабильно. Разумная практика — плановая проверка после инцидентов (сбои питания, аварийные остановки) и перед важными операциями вроде обновления конфигурации или закрытия периода, чтобы убедиться в целостности данных заранее.

ТиИ не запускается из-за ошибки монопольного доступа. Что делать?

Значит, в базе остались активные сеансы или фоновые задания. В файловом режиме проверьте, что все пользователи вышли, и закройте лишние окна конфигуратора. В клиент-серверном — откройте консоль кластера, найдите активные сеансы и завершите их, включая зависшие соединения, затем повторите запуск.