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

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

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

Как правильно остановить тестирование и исправление информационной базы 1С, когда процесс завис. Риски прерывания, восстановление базы и профилактика.

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

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

Как понять, что процесс завис, а не просто долго работает

Тестирование и исправление на объёмной базе может занимать несколько часов, особенно если включены режимы реиндексации таблиц и проверки ссылочной целостности. Отсутствие видимого прогресса в течение 20–40 минут само по себе не означает зависание: на этапе реиндексации индикатор может не двигаться, пока обрабатывается одна большая таблица.

Объективные признаки реальной работы процесса: процесс 1cv8.exe в диспетчере задач потребляет процессорное время или активно читает и пишет на диск, файл базы изменяется по размеру, растёт временный файл в каталоге пользователя. Если же загрузка процессора и диска близка к нулю длительное время, а размер файлов не меняется — вероятно, процесс действительно завис.

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

Как проверить состояние процесса

Загрузка CPU процессом 1cv8.exe
Норма

Периодически или постоянно выше нуля

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

Строго 0% более 30–60 минут

Активность диска
Норма

Есть чтение/запись в диспетчере задач или мониторе ресурсов

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

Диск простаивает, обращений к файлу базы нет

Размер файла 1Cv8.1CD и временных файлов
Норма

Меняется со временем

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

Не меняется длительное время

Штатный способ: кнопка прерывания

Во время выполнения тестирования и исправления конфигуратор показывает окно состояния процесса. В нём доступна кнопка прерывания (в разных версиях платформы она может называться «Прервать» или отображаться как крестик в строке состояния). Нажатие отправляет процессу команду корректно завершить текущую операцию и остановиться.

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

Если после нажатия «Прервать» прошло более 15–20 минут без реакции и признаков активности, можно переходить к принудительному завершению процесса.

Порядок штатной остановки
  1. 1
    Нажмите «Прервать» в окне состояния тестирования
  2. 2
    Дождитесь завершения текущей операции — до 10–15 минут
  3. 3
    Убедитесь, что конфигуратор вернулся в рабочее состояние
  4. 4
    Проверьте, что база открывается в режиме Предприятия
  5. 5
    Перед повторным запуском сделайте резервную копию

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

Если штатное прерывание не срабатывает, остаётся снятие процесса. Откройте диспетчер задач (Ctrl+Shift+Esc), найдите процесс 1cv8.exe, соответствующий конфигуратору с запущенным тестированием, и завершите его. Если на компьютере запущено несколько сеансов 1С, убедитесь, что завершаете именно нужный процесс — ориентируйтесь по командной строке процесса (включается в настройках колонок диспетчера задач).

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

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

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

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

Действия после аварийной остановки

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

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

Только после успешной проверки chdbfl и подтверждения, что база открывается, имеет смысл повторно запускать тестирование и исправление — желательно сначала в режиме «Тестирование» без исправления, чтобы оценить объём проблем.

Восстановление после прерывания
  1. 1
    Убедитесь, что все процессы 1cv8.exe с этой базой завершены
  2. 2
    Скопируйте файл 1Cv8.1CD в безопасное место
  3. 3
    Запустите chdbfl.exe, укажите файл базы, включите исправление ошибок
  4. 4
    Проверьте открытие базы в конфигураторе и режиме Предприятия
  5. 5
    Сделайте выгрузку в .dt и только потом планируйте повторное тестирование

Как запускать тестирование, чтобы не пришлось его останавливать

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

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

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

Ответы на частые вопросы

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

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

Процесс висит уже несколько часов — это нормально?

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

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

Не запускайте повторно конфигуратор «до победного». Завершите все процессы 1С, скопируйте файл 1Cv8.1CD, прогоните chdbfl.exe с включённым исправлением. Если утилита не помогла — восстанавливайте базу из резервной копии или выгрузки .dt.

Как остановить тестирование в клиент-серверной базе?

Завершение клиентского приложения не остановит процесс. Операцию нужно прерывать на сервере: через консоль кластера 1С (принудительное завершение сеанса) или на уровне СУБД. Это задача администратора сервера.

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

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

Удалит ли прерывание уже исправленные ошибки?

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

Итог

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

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