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