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