Остановка зависшего тестирования и исправления информационной базы 1С
Содержание
Тестирование и исправление информационной базы можно прервать кнопкой в окне хода выполнения, а если окно не отвечает, то завершением процесса Конфигуратора: 1cv8.exe в диспетчере задач или сеанса «Конфигуратор» в консоли кластера серверов. Сначала подождите: на большой базе операция честно работает несколько часов, а «зависшей» кажется из-за неподвижной полосы.
Процесс запускается из Конфигуратора: Администрирование → Тестирование и исправление информационной базы. Он блокирует базу монопольно, пересобирает индексы и проверяет структуры. Грубо оборвать его опасно: файловая база после этого может перестать открываться. Поэтому порядок действий важнее скорости.
Перед любой принудительной остановкой скопируйте базу целиком: файл 1Cv8.1CD из каталога базы или выгрузку СУБД. Запущенная проверка уже могла что-то менять.
Как понять, что процесс завис, а не работает
Не торопитесь убивать процесс. Проверьте три признака.
- 📈 Нагрузка на диск. В диспетчере задач на вкладке «Производительность» диск должен быть занят. Если запись идёт, 1С работает.
- 🧮 Память и процессор. Процесс
1cv8.exeс растущим или скачущим потреблением памяти живой. - 📝 Журнал в окне. Внизу окна Конфигуратора появляются строки о проверенных таблицах. Новые строки раз в несколько минут — нормально.
Ориентиры по времени (примерно): база 5 ГБ на SSD проходит полный тест за 20–60 минут, 50 ГБ на обычном жёстком диске может занять 6–10 часов. Если за час нет ни дисковой активности, ни новых строк, процесс, скорее всего, завис.
На сервере с СУБД посмотрите активность запросов. Если в PostgreSQL или MS SQL идёт длинный запрос от 1С, ждите. Если сеанс «спит» без запросов, это зависание.
Почему процесс вообще встаёт
Знание причины подсказывает, нужна ли остановка.
- 🔐 Не получен монопольный доступ. В базе остался чужой сеанс, и Конфигуратор ждёт его ухода. Полоса стоит на нуле, диска нет. Решение: закрыть чужие сеансы, а не убивать процесс.
- 💽 Закончилось место. Для реструктуризации нужен запас на диске. При нехватке места операция замирает или падает с ошибкой.
- 🐢 Медленный диск или сеть. Сетевая папка с файловой базой или нагруженный виртуальный диск растягивают проверку в разы.
- 🧱 Битая таблица. Платформа долго обрабатывает повреждённые данные и может застрять на одном месте часами.
- 🛡 Антивирус. Он сканирует каждое обращение к файлу базы. Добавьте каталог базы в исключения на время работы.
Штатная отмена прямо в окне Конфигуратора
Это самый безопасный способ, начинайте с него.
- Найдите окно хода выполнения операции. Если оно скрылось за другими, переключитесь через
Alt+Tabили панель задач. - Нажмите кнопку остановки или
Отмена, если она доступна. Набор кнопок зависит от версии платформы. - Подождите 5–15 минут. Платформа должна закончить текущий шаг и откатить незавершённую часть. На больших таблицах это не мгновенно.
- Когда окно закрылось, откройте базу в обычном режиме и проверьте, что она запускается.
Если в окне нет кнопки или оно не реагирует на клики дольше десяти минут, переходите к принудительной остановке.
Не закрывайте Конфигуратор крестиком, пока идёт операция. Это тоже обрыв, но без контроля над последствиями.
Принудительное завершение через диспетчер задач
Подходит для файловой базы и для случая, когда Конфигуратор запущен на вашем компьютере.
- Откройте диспетчер задач:
Ctrl+Shift+Esc. - Перейдите на вкладку «Подробности» (в старых Windows — «Процессы»).
- Найдите
1cv8.exe. Если процессов несколько, откройте столбец «Командная строка» или посмотрите, какой из них занимает память и диск: это Конфигуратор. - Выберите процесс и нажмите «Снять задачу», при необходимости повторите.
- Убедитесь, что в списке не осталось процессов
1cv8.exe,1cv8c.exeс вашей базой.
Если процесс не гаснет, у него есть дочерние ветки. В командной строке от администратора выполните:
taskkill /F /IM 1cv8.exe /T
Флаг /T завершает процесс вместе с потомками. Команда убьёт все запущенные копии 1cv8.exe, включая чужие сеансы на этом же компьютере. На терминальном сервере сначала найдите свой сеанс, иначе вы сбросите коллег.
Сеанс в консоли кластера серверов
Для клиент-серверной базы убить 1cv8.exe у себя недостаточно: сервер может держать блокировку ещё несколько минут. Правильнее закрыть сеанс на стороне кластера.
- Запустите консоль администрирования серверов 1С. Если у вас нет прав администратора кластера, попросите админа.
- Раскройте кластер, затем
Информационные базы→ нужная база →Сеансы. - Найдите сеанс с приложением «Конфигуратор». Колонка «Приложение» и время начала помогут не ошибиться.
- Нажмите
Завершить сеанс(правая кнопка мыши или значок на панели). - Откройте вкладку
Соединения. Если там остались соединения от этого сеанса, завершите и их.
Что делать с СУБД. После обрыва соединения PostgreSQL и MS SQL откатывают незавершённую транзакцию сами, поэтому серверная база обычно переживает остановку лучше файловой. «Обычно» не значит «всегда», бэкап не отменяется.
Если сеанс виден в консоли, но не завершается, проверьте процесс рабочего сервера rphost. Завершать его без нужды не стоит: он обслуживает и других пользователей. Лучше сначала отключить от базы всех через блокировку начала сеансов, потом разбираться с конкретным процессом.
1cv8.exe в диспетчере задач. Сделайте копию файла 1Cv8.1CD до этого.Особенности прерывания в файловом варианте
Файловая база, это один файл 1Cv8.1CD в каталоге. Транзакционного журнала СУБД здесь нет, поэтому оборванная перестройка индексов или реструктуризация может оставить файл в неконсистентном состоянии.
Что учесть:
- 🗂 Рядом с базой могут остаться временные файлы и файл блокировки
1Cv8.cdn. После остановки процесса убедитесь, что никто не держит базу, и только потом пробуйте открыть её. - 💾 Копию делайте при закрытых сеансах, иначе скопируете часть файла в «середине записи».
- 🔌 Если пользователи на других компьютерах подключены к общему каталогу, они увидят блокировку. Не принуждайте их, сначала закройте сеансы.
- 🧰 Для файловой базы есть отдельная утилита проверки
chdbfl.exeв каталогеbinплатформы. Она проверяет и чинит физическую целостность файла. Запускайте её только на копии и при закрытой базе.
В файловом варианте шанс «убитую» базу восстановить хуже, чем в серверном. Если база нужна срочно, а свежей копии нет, не экспериментируйте на единственном экземпляре.
Что смотреть в журнале
Если база открылась, загляните в журнал регистрации: Администрирование → Журнал регистрации в обычном режиме. Отфильтруйте события за время теста по уровню «Ошибка» и «Предупреждение». Если там нет ошибок целостности, это хороший знак. Если есть, запишите текст дословно: он пригодится для поиска решения или для обращения в поддержку.
В Конфигураторе подробности остались в окне сообщений. Скопируйте его содержимое в текстовый файл до закрытия программы.
Проверка и восстановление после прерывания
Остановили процесс. Теперь нужно убедиться, что база цела.
- Дождитесь, пока в консоли кластера или в диспетчере не останется сеансов Конфигуратора.
- Запустите базу в обычном режиме «1С:Предприятие». Если она открылась, зайдите в пару документов и сформируйте отчёт, который строится на больших таблицах.
- Если база не открывается, выдаёт ошибку формата потока или блокировки, запустите тестирование и исправление заново на копии, но с осторожными галочками: сначала только
Тестирование без исправления. - Если и это не помогает, восстанавливайте базу из последней резервной копии. Данные за время после копии придётся ввести заново или выгрузить из прежней базы по возможности.
В тот же день стоит запустить Администрирование → Тестирование и исправление заново и дать ему дойти до конца. Незавершённая проверка не гарантирует ничего.
Как не прерывать тестирование в следующий раз
Большинство обрывов происходит потому, что операцию запускают в рабочее время или не оценивают время.
- 🕗 Планируйте окно. Запускайте вечером или в выходной. Для базы 50 ГБ резервируйте ночь целиком.
- 💽 Освободите место. Операции нужно свободное место на диске, примерно равное размеру базы. Если места мало, процесс застревает на реструктуризации.
- 🔒 Закройте всех. Выставьте блокировку начала сеансов заранее, иначе монопольный доступ не получится, и тестирование встанет в ожидании.
- 🧹 Не гоняйте полный набор. Если нужна только реиндексация, отметьте только её. Пересчёт итогов и сжатие таблиц добавляют часы.
- 🧪 Сначала режим «только тестирование». Он ничего не правит и показывает, есть ли вообще проблемы.
- 🖥 Запускайте рядом с базой. Для серверной базы лучше запускать Конфигуратор на самом сервере или в быстрой локальной сети. По медленному каналу он работает значительно дольше.
Коротко о том, какие галочки что делают
Тестирование и исправление состоит из отдельных операций, и каждую можно включать независимо. Ниже общее назначение, точные названия зависят от версии платформы.
| Операция | Что делает | Сколько времени |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | От минут до часов |
| Проверка логической целостности | Ищет нарушения в структуре данных | Долго на больших базах |
| Проверка ссылочной целостности | Находит ссылки на несуществующие объекты | Долго, можно исправлять |
| Пересчёт итогов | Заново считает таблицы итогов регистров | Зависит от числа движений |
| Сжатие таблиц | Уменьшает размер файлов базы | Долго, нужно место на диске |
Пересчёт итогов и сжатие таблиц отметьте только когда в них есть смысл. Если база просто не открывается, начните с проверки целостности без этих двух пунктов.
Резервная копия: быстрый минимум
Копия нужна до любой остановки, и делать её надо правильно.
- Файловая база: закройте все сеансы и скопируйте
1Cv8.1CDв другую папку или на другой диск. Проверьте размер копии, он должен совпасть с оригиналом. - Серверная база: сделайте бэкап средствами СУБД, а не копированием файлов каталога данных на работающем сервере.
- Выгрузка в файл
.dtчерез Конфигуратор тоже подходит, но на повреждённой базе она может не пройти. Не считайте её единственной страховкой.
Хранить копию стоит отдельно от рабочего диска. Если проблема в диске, копия рядом погибнет вместе с базой.
Таблица способов остановки
| Способ | Когда применять | Риск |
|---|---|---|
| Отмена в окне хода выполнения | Окно отвечает, процесс живой | Минимальный |
| Завершение сеанса в консоли кластера | Серверная база, окно не отвечает | Низкий |
Диспетчер задач, 1cv8.exe | Файловая база, сеанс на вашем ПК | Средний |
taskkill /F /IM 1cv8.exe /T | Процесс не гаснет обычным способом | Выше среднего, заденет все копии |
| Перезагрузка компьютера или сервера | Ничего не помогает | Высокий, только в крайнем случае |
Частые вопросы
Сколько ждать, прежде чем прерывать тестирование?
Можно ли выключить компьютер, если тестирование идёт слишком долго?
Что будет с данными, если прервать тестирование без исправления?
Почему после остановки база пишет, что она занята?
1cv8.exe исчез.