Администрирование · 10 мин
Как прервать тестирование базы 1С
Как корректно прервать тестирование и исправление информационной базы 1С: способы остановки, риски, проверка целостности данных и восстановление после сбоя.
Тестирование и исправление информационной базы — штатная утилита платформы 1С, которая проверяет физическую и логическую целостность данных. Проблема в том, что на больших базах процесс может идти часами, блокируя работу пользователей, и иногда его требуется остановить: кончилось регламентное окно, утилита зависла или запущена с ошибочными параметрами.
Прервать тестирование можно, но способ остановки напрямую влияет на безопасность данных. Мягкое прерывание штатными средствами почти всегда безопасно, а вот принудительное снятие процесса в момент активной записи способно оставить базу в повреждённом состоянии — особенно файловый вариант.
Ниже разобраны рабочие способы остановки для файловых и клиент-серверных баз, признаки зависания, порядок проверки целостности после прерывания и типичные ошибки администраторов.
Когда прерывание оправдано, а когда лучше дождаться окончания
Прежде чем останавливать процесс, оцените, действительно ли он завис или просто долго работает. На объёмных базах отдельные этапы — проверка ссылочной целостности, реиндексация больших таблиц — могут занимать десятки минут без видимого прогресса в окне.
Прерывание оправдано в нескольких ситуациях: утилита запущена с параметрами «Исправлять ошибки» по ошибке; заканчивается регламентное окно и нужно запускать пользователей; процесс реально завис (нет дисковой и процессорной активности длительное время); обнаружилось, что резервная копия перед запуском не сделана или неактуальна.
Если же тестирование идёт в штатном режиме и окно обслуживания ещё не закрыто, безопаснее дождаться завершения. Каждое прерывание в процессе исправления ошибок — это риск получить частично обработанные данные.
Процесс работает, прерывать не обязательно
Вероятно зависание — готовьте остановку
Идёт реструктуризация, дождитесь этапа
Проверьте активность процесса перед снятием
Штатное прерывание через интерфейс конфигуратора
Самый безопасный способ — использовать штатные средства платформы. В окне утилиты тестирования и исправления есть возможность остановить выполнение: в зависимости от версии платформы доступна кнопка прерывания либо процесс останавливается закрытием окна через стандартное сочетание клавиш отмены.
При таком способе платформа завершает текущую операцию корректно: откатывает незавершённую транзакцию и оставляет базу в согласованном состоянии. Уже выполненные исправления при этом могут сохраниться — утилита фиксирует изменения порциями, а не одной транзакцией на весь процесс.
Важно понимать: после нажатия отмены процесс не останавливается мгновенно. Платформе нужно завершить или откатить текущую порцию изменений, и на больших таблицах это может занять заметное время. Повторные попытки «донажать» отмену только усугубляют ситуацию.
Остановка через консоль кластера для клиент-серверных баз
Если тестирование запущено над базой на сервере 1С:Предприятия, управлять процессом удобнее через консоль администрирования кластера. Тестирование выполняется в рамках сеанса конфигуратора, и этот сеанс можно завершить принудительно, но управляемо со стороны сервера.
Откройте консоль кластера, найдите нужную информационную базу, перейдите в список сеансов и найдите сеанс с приложением «Конфигуратор» от имени администратора, запустившего проверку. Завершение сеанса через консоль корректнее, чем убийство процесса на уровне операционной системы: сервер получает команду на завершение и освобождает ресурсы.
Учтите, что фактическую работу с данными выполняет СУБД. Если на момент завершения сеанса на SQL-сервере выполнялась длинная транзакция, она будет откачена — и откат большой транзакции может занять время, сопоставимое с её выполнением. В этот период база остаётся доступной, но нагрузка на СУБД сохраняется.
Принудительное снятие процесса: когда без этого не обойтись
Жёсткое завершение — последний вариант, применимый только при реальном зависании: процесс не отвечает длительное время, нет дисковой активности, штатное прерывание и завершение сеанса не срабатывают.
Для файловой базы это снятие процесса 1cv8.exe (или 1cv8c.exe) через диспетчер задач. Для клиент-серверной — завершение рабочего процесса rphost на сервере приложений либо остановка зависшей сессии средствами СУБД. В обоих случаях незавершённые транзакции откатываются, но момент обрыва может прийтись на запись служебных структур.
Файловая база: особые риски
Файловый формат наиболее уязвим к принудительным прерываниям. Внутренние механизмы восстановления файла ограничены, и обрыв записи может привести к ошибкам формата потока, повреждению индексов или таблиц. Именно поэтому перед запуском тестирования с исправлением на файловой базе резервная копия обязательна — достаточно скопировать файл 1Cv8.1CD при закрытых сеансах.
Клиент-серверная база: роль СУБД
SQL Server, PostgreSQL и другие поддерживаемые СУБД обеспечивают транзакционность: при обрыве соединения незавершённые изменения откатываются автоматически. Риск повреждения данных заметно ниже, но возможны длительные блокировки и рост журнала транзакций во время отката. После прерывания проверьте состояние базы средствами СУБД и дождитесь завершения отката перед повторными действиями.
Проверка целостности базы после прерывания
После любого нештатного завершения тестирования базу нужно проверить, прежде чем допускать пользователей. Набор проверок зависит от того, на каком этапе остановился процесс и выполнялось ли исправление ошибок.
Как проверить результат
База открывается без ошибок
Ошибка формата потока, повреждение файла
Приложение стартует, журнал регистрации доступен
Ошибки при запуске, недоступность объектов
Проверка завершается без критических ошибок
Массовые ошибки целостности и ссылок
Данные сходятся, документы открываются
Пропавшие записи, битые ссылки
Повторное тестирование запускайте сначала только в режиме проверки, без исправления. Это безопасно и покажет реальное состояние базы. Если выявлены ошибки — сделайте резервную копию и только потом запускайте исправление, желательно в новое регламентное окно с достаточным запасом времени.
Для файловых баз дополнительно полезна проверка физической целостности утилитой chdbfl.exe из каталога платформы — она работает на уровне файла и выявляет повреждения, которые логическая проверка может пропустить.
Как избежать необходимости прерывать тестирование
Большинство ситуаций с экстренной остановкой возникает из-за ошибок планирования. Несколько практических мер заметно снижают риск.
Оценивайте длительность заранее: прогоните проверку на копии базы и замерьте время. Запускайте проверки поэтапно — сначала логическую целостность, отдельно ссылочную, отдельно реиндексацию. Так проще контролировать процесс и прерывать его между этапами, а не посреди операции.
Для регулярного обслуживания используйте пакетный запуск конфигуратора с параметрами командной строки и лог-файлом: по логу видно, на каком этапе находится процесс, и проще принять решение об остановке. Большим базам выделяйте окно с запасом и рассматривайте переход на клиент-серверный вариант, где риски при прерывании существенно ниже.
Что важно запомнить
Сначала пробуйте штатное прерывание и завершение сеанса через консоль кластера, снятие процесса — только при реальном зависании. После любой нештатной остановки проверяйте целостность базы в режиме проверки без исправления. Резервная копия перед запуском исправления — обязательное условие, а поэтапный запуск проверок избавляет от большинства ситуаций с экстренной остановкой.
Частые вопросы
Что будет с данными, если прервать тестирование с исправлением ошибок?
Уже зафиксированные порции исправлений сохранятся, незавершённая операция откатится. База останется в согласованном состоянии, но часть ошибок будет исправлена, а часть — нет. Перед повторным запуском сделайте копию и оцените оставшиеся ошибки в режиме проверки.
Тестирование зависло на одном проценте несколько часов — это нормально?
На очень больших таблицах отдельные этапы могут идти долго без видимого прогресса. Проверьте активность диска и процессора: если нагрузка есть — процесс работает. Если активности нет продолжительное время — вероятно зависание, и можно готовить остановку через завершение сеанса.
Можно ли прервать тестирование, запущенное пакетно из командной строки?
Да. Завершите соответствующий процесс конфигуратора или сеанс в консоли кластера. По лог-файлу, указанному в параметрах запуска, можно определить, на каком этапе произошла остановка, и спланировать дальнейшие проверки.
Нужно ли после прерывания блокировать доступ пользователей?
Да, до завершения проверки целостности пользователей допускать не стоит. Если база повреждена, их работа может усугубить проблему или создать новые данные поверх неконсистентного состояния, что усложнит восстановление.
Чем отличается риск прерывания для файловой и клиент-серверной базы?
В клиент-серверном варианте СУБД откатывает незавершённые транзакции, и риск повреждения данных низкий. Файловая база при обрыве записи может быть повреждена вплоть до невозможности открытия, поэтому копия файла 1Cv8.1CD перед обслуживанием обязательна.