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

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

Как прервать тестирование и исправление (ТиИ) в 1С

Как безопасно прервать тестирование и исправление информационной базы 1С: способы остановки ТиИ, риски, восстановление после сбоя и типичные ошибки.

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

Ключевое правило: чем «мягче» способ остановки, тем ниже риск потери данных. Штатное прерывание через интерфейс конфигуратора почти безопасно, а вот принудительное снятие процесса или перезагрузка сервера во время фазы физического исправления таблиц может привести к тому, что база перестанет открываться. Поэтому перед любыми действиями важно понимать, на каком этапе находится процедура и какой тип базы используется — файловый или клиент-серверный.

Что происходит во время ТиИ и почему прерывание рискованно

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

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

Подготовка: что проверить перед прерыванием

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

Убедитесь, что у вас есть резервная копия базы, сделанная до запуска ТиИ. Если копии нет и база файловая — при первой возможности (после остановки процесса) скопируйте файл 1Cv8.1CD целиком, даже если он потенциально повреждён: это позволит вернуться к текущему состоянию, если попытки починить базу ухудшат ситуацию.

Режим «Только тестирование»Низкий риск

Прерывание почти безопасно на любом этапе

Режим «Тестирование и исправление»Высокий риск

Останавливать только штатно, избегать снятия процесса

Конфигуратор не отвечаетПроцесс, возможно, работает

Проверить нагрузку на диск и процессор перед снятием задачи

Нет резервной копииКритический фактор

Любое принудительное прерывание — последняя мера

Способ 1. Штатное прерывание через конфигуратор

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

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

Порядок штатного прерывания
  1. 1
    Нажмите «Прервать» в окне выполнения ТиИ
  2. 2
    Дождитесь сообщения о завершении операции — не закрывайте окно принудительно
  3. 3
    Проверьте окно служебных сообщений: зафиксируйте, на каком объекте остановился процесс
  4. 4
    Закройте конфигуратор и откройте базу в режиме предприятия
  5. 5
    Проверьте доступность ключевых разделов: документы, справочники, отчёты

Способ 2. Принудительное завершение процесса для файловой базы

Если конфигуратор полностью завис и не реагирует на штатное прерывание, для файловой базы можно снять процесс через диспетчер задач Windows. Найдите процесс 1cv8.exe, соответствующий конфигуратору, и завершите его. Перед этим полезно посмотреть на активность диска: если процесс интенсивно работает с файлом базы, он, скорее всего, не завис, а выполняет длительную операцию, и снятие задачи особенно рискованно.

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

Способ 3. Остановка ТиИ на клиент-серверной базе

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

Если и это не помогает, завершение рабочего процесса кластера (rphost) — крайняя мера: она затронет всех пользователей, обслуживаемых этим процессом. Перезапуск службы сервера 1С или СУБД во время исправления таблиц — самый опасный сценарий, после которого с высокой вероятностью потребуется восстановление из бэкапа средствами СУБД.

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

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

Конфигуратор отвечает, кнопка доступнаИспользуйте штатное прерывание и ждите завершения
Конфигуратор завис, база файловаяСнимите процесс 1cv8.exe, затем проверьте базу утилитой chdbfl
База клиент-серверная, клиент зависЗавершите сеанс через консоль кластера
Сеанс не завершается, сервер перегруженОстановите рабочий процесс кластера, предупредив пользователей, и готовьте резервную копию

Что делать после прерывания: проверка и восстановление

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

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

Контрольные точки

Как проверить результат

Открытие базы в режиме предприятия
Норма

База открывается без ошибок

Тревожный признак

Ошибка формата потока или ошибка СУБД

Работа с документами и справочниками
Норма

Списки открываются, записи читаются

Тревожный признак

Пустые таблицы, ошибки при обращении к объектам

Формирование отчётов
Норма

Отчёты строятся за привычное время

Тревожный признак

Зависания, ошибки запросов

Журнал регистрации
Норма

Нет массовых ошибок после прерывания

Тревожный признак

Повторяющиеся ошибки доступа к данным

Как избежать необходимости прерывать ТиИ в будущем

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

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

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

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

Можно ли прервать ТиИ без последствий?

Если процедура запущена в режиме «Только тестирование» и остановлена штатной кнопкой — практически всегда без последствий. В режиме исправления риск зависит от момента остановки: чем раньше этап, тем безопаснее прерывание.

Конфигуратор завис на ТиИ уже несколько часов. Это нормально?

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

После принудительного прерывания база не открывается. Что делать?

Для файловой базы сначала скопируйте файл 1Cv8.1CD, затем прогоните его через утилиту chdbfl из каталога платформы. Если не помогло — восстанавливайтесь из резервной копии. Для клиент-серверной базы восстановление выполняется средствами СУБД из бэкапа.

Можно ли остановить ТиИ, запущенное через пакетный режим командной строки?

Да, но только завершением соответствующего процесса 1cv8.exe (или сеанса на сервере для клиент-серверного варианта). При этом действуют те же риски, что и при снятии зависшего конфигуратора, поэтому пакетные запуски ТиИ стоит делать только при наличии свежей копии.

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

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

Итог

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

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