Прервать зависшее тестирование базы или обработку в 1С без потери данных

· 9 мин

Содержание

Первая реакция при зависании — убить процесс 1cv8.exe через диспетчер задач. Это самый быстрый способ и самый рискованный: если идёт тестирование и исправление базы, жёсткий обрыв может оставить таблицы в неконсистентном состоянии. Сначала определите, что именно у вас «работает», и только потом выбирайте метод.

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

Сначала определите: что именно «тестируется»

Слово «тестирование» в 1С означает две разные вещи, и останавливаются они по-разному.

Что идётГде запущеноЧем опасно прерывание
Тестирование и исправление информационной базыКонфигуратор, монопольный режимВысокое: идёт работа со структурой таблиц
Проверка конфигурации (логическая и синтаксическая)КонфигураторНизкое: база не меняется
Долгая обработка, закрытие месяца, групповое проведениеПредприятиеСреднее: транзакция откатится сама
Фоновое или регламентное заданиеСервер или клиентНизкое: задание можно отменить

Если в заголовке окна написано «Конфигуратор» и идёт полоса прогресса «Тестирование и исправление» — это первая строка таблицы. Её обрывать нужно особенно осторожно.

Перед любым вмешательством посмотрите, есть ли признаки жизни. Диспетчер задач покажет, растёт ли нагрузка на диск и процессор у 1cv8.exe. Если диск читается и процесс потребляет ресурсы — тестирование не зависло, оно просто долгое. Для базы на 50 ГБ полное тестирование спокойно идёт несколько часов, а на медленном диске — больше суток.

Не прерывайте тестирование с исправлением, пока не сделали копию базы . Выгрузка .dt или копия файла 1Cv8.1CD занимает минуты, а восстановление после обрыва — дни.

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

Начните с мягкого способа: он безопаснее всего.

В режиме Предприятия

Долгая обработка или групповая операция в обычном клиенте останавливается так:

  1. Нажмите Ctrl+Break в окне 1С. Платформа покажет запрос на прерывание текущей операции.
  2. Подтвердите прерывание.
  3. Дождитесь возврата к рабочему окну. Это может занять от нескольких секунд до минуты.

В тонком клиенте и веб-клиенте этой комбинации нет. Если форма показывает индикатор долгой операции, закройте вкладку или окно: сервер доведёт операцию до безопасной точки или откатит транзакцию.

Для фоновых заданий в типовых конфигурациях с БСП есть отдельная форма: раздел «Администрирование», пункт про обслуживание, внутри — список регламентных и фоновых заданий. Выделите нужное задание и отмените его. Точное название пункта зависит от конфигурации и релиза: найдите форму через поиск по меню по слову «фоновые».

Закрытие окна не отменяет операцию на сервере мгновенно. Если сеанс «висит» в консоли кластера после закрытия клиента — переходите к разделу про консоль администрирования.

В Конфигураторе

Окно тестирования имеет кнопку отмены на индикаторе. Нажмите её и подождите. Платформа завершает текущий шаг и останавливается. Если окно не отвечает больше 10–15 минут и диск молчит, переходите к жёстким методам.

Две важные детали:

  • Проверка конфигурации (меню «Конфигурация» → «Проверка конфигурации») останавливается свободно, она ничего не пишет в базу.
  • Тестирование без галочки «Исправлять» не меняет данные, поэтому его обрыв тоже безопасен.

Закрыть сеанс через Конфигуратор

Если в базе остался чужой или «мёртвый» сеанс и он мешает перейти в монопольный режим, посмотрите список активных пользователей. В Конфигураторе это пункт меню «Администрирование» → «Активные пользователи». Там видно имя, компьютер, приложение и время начала сеанса.

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

Когда сеансов нет, а монопольный режим не включается, причина обычно в файле блокировки 1Cv8.cdn или 1Cv8.lck в каталоге базы. Они остаются после аварийного завершения. Удалять их можно, только когда точно никто не работает с базой, и лучше — после закрытия всех экземпляров 1cv8.exe.

Мини-кейс: тестирование «висит» третий час

Бухгалтерия, файловая база около 18 ГБ, тестирование с исправлением запущено вечером. Утром индикатор стоит на одном месте. Что делать:

  1. Откройте диспетчер задач и посмотрите 1cv8.exe. Если в колонке «Диск» держится нагрузка в несколько МБ/с, операция жива.
  2. Подождите ещё час и сравните цифры: растёт ли объём памяти процесса, меняется ли размер служебных файлов рядом с базой.
  3. Если всё замерло, скопируйте каталог базы целиком на другой диск. Копия — страховка на случай, если обрыв повредит основной файл.
  4. Только после этого снимайте процесс.

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

Запуск тестирования из командной строки

Для регулярных проверок удобно запускать тестирование без интерфейса и писать результат в файл. Тогда остановить его проще: у вас есть имя процесса и лог.

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /IBCheckAndRepair /Out "D:\Logs\check.log"

Версия платформы и пути у каждого свои, подставьте свои. Точный набор параметров проверьте в справке к вашему релизу платформы: он немного меняется от версии к версии. Лог пригодится, чтобы понять, на каком объекте остановилась проверка.

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

Это основной метод для клиент-серверной базы. Консоль кластера работает с сеансами и соединениями на уровне сервера, а не клиента.

Через оснастку

Откройте «Администрирование серверов 1С:Предприятия» и найдите кластер:

  1. Раскройте узел кластера → «Информационные базы» → ваша база.
  2. Зайдите в ветку «Сеансы».
  3. Найдите сеанс по пользователю или по приложению (Designer для Конфигуратора, 1CV8C для толстого клиента, 1CV8 для тонкого).
  4. Правой кнопкой → «Завершить сеанс» (или «Удалить»).
  5. Если сеанс держится, зайдите в «Соединения» и отключите соответствующее соединение.

Сеанс может висеть минуту-две: сервер ждёт безопасного завершения. Если запрос к СУБД идёт долго, сеанс не закроется, пока СУБД не ответит.

Из командной строки

Для скриптов подойдёт утилита rac из каталога сервера 1С:

rac session --cluster=<id_кластера> list --infobase=<id_базы>
rac session --cluster=<id_кластера> terminate --session=<id_сеанса>

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

Если не закрывается

Процесс rphost, обслуживающий сеанс, мог зависнуть. В консоли кластера на ветке «Рабочие процессы» видно, какой процесс держит нагрузку. Перезапуск службы агента сервера 1С остановит все сеансы, поэтому делайте это ночью или в окно обслуживания.

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

Аварийная остановка через диспетчер задач

Крайняя мера, когда окно не отвечает, диск молчит, а консоль не помогает.

  1. Откройте диспетчер задач (Ctrl+Shift+Esc).
  2. На вкладке «Подробности» найдите 1cv8.exe (Конфигуратор, толстый клиент) или 1cv8c.exe (тонкий клиент).
  3. Если процессов несколько, определите нужный: у Конфигуратора окно с заголовком базы и словом «Конфигуратор».
  4. Правая кнопка → «Снять задачу».

Из командной строки то же самое:

taskkill /PID 1234 /F

Подставьте номер процесса вместо 1234. Команда taskkill /IM 1cv8.exe /F убьёт все процессы с таким именем, включая чужие сеансы на терминальном сервере.

На терминальном сервере (RDP) легко снять сеанс соседа. Сверяйте имя пользователя в колонке диспетчера задач, а не только имя процесса.

После жёсткого завершения:

  • Откройте Конфигуратор и запустите «Проверку конфигурации».
  • Если останавливали тестирование с исправлением, запустите повторное тестирование без исправления: оно покажет, в каком состоянии таблицы.
  • Если появились ошибки на уровне СУБД, восстанавливайте базу из последней копии.

Что проверить после обрыва

Короткий порядок действий после любой жёсткой остановки:

  1. Запустите Конфигуратор и подождите, пока база откроется. Если она не открывается или выдаёт ошибку структуры, сразу переходите к восстановлению из копии.
  2. Выполните тестирование без исправления. Оно покажет, остались ли ошибки.
  3. Откройте несколько последних документов и проведите один тестовый документ. Если проведение проходит и проводки формируются, база, скорее всего, в порядке.
  4. Запустите «Проверку конфигурации», если работаете с доработанной конфигурацией.
  5. Только потом пускайте пользователей.

Если база клиент-серверная, добавьте проверку на стороне СУБД: ошибок в журнале сервера баз данных быть не должно, а свободного места должно хватать.

Остановка тестирования в файловой базе

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

Что это меняет:

  • Останавливать нужно сам процесс 1cv8.exe. Консоль кластера не подходит.
  • В базе остаются файлы блокировки. После обрыва проверьте каталог базы: если там лежит 1Cv8.cdn и никто не работает, удалите его вручную.
  • Файл 1Cv8.1CD — единый, и обрыв записи в него может его повредить. Копируйте его до любых действий.
  • Если базу открывали по сети с разных машин, снимите процессы на каждой, иначе блокировка останется.

Копию файловой базы делайте простым копированием файла 1Cv8.1CD при закрытых сеансах. Это надёжнее выгрузки, если база не открывается.

Для файловых баз с большим объёмом тестирование идёт долго из-за диска. Если база лежит на сетевой папке, запуск тестирования локально (с копией на SSD) может сократить время в разы.

Как остановить зависание заранее

Зависания тестирования редко случаются «просто так». Типичные причины и меры:

  • ⚡ Нехватка места. Для тестирования с исправлением нужно свободное место примерно в размер базы. Проверьте диск до запуска.
  • ⏱ Параллельная работа. Тестирование идёт монопольно. Если кто-то заходит в базу, оно не стартует или висит. Закройте сеансы заранее.
  • 🛡 Антивирус. Он сканирует 1Cv8.1CD при каждом обращении и тормозит операцию в разы. Добавьте каталог базы в исключения.
  • 💾 Слабый диск. HDD при больших объёмах — вечное ожидание. SSD ускоряет тестирование заметно.
  • 🌐 Работа по сети. Тестируйте на сервере локально, не через сетевой диск.
Перед запуском тестирования и исправления
Выполнено: 0 / 5

Если тестирование всё равно зависает, запишите: на каком шаге остановилось и сколько прошло времени. Это сэкономит часы тому, кто будет разбираться дальше.

Какой способ выбрать: быстрая схема

Что у вас происходит?

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

Сколько ждать, прежде чем считать тестирование зависшим?
Ориентир — 15–30 минут без дисковой и процессорной активности. Если диск работает, процесс жив.
Можно ли снять `1cv8.exe`, если тестирование шло без исправления?
Да. Без исправления тестирование ничего не пишет в базу, обрыв не повредит данные.
Безопасно ли удалять файл `1Cv8.cdn`?
Да, когда никто не работает с базой и все процессы 1cv8.exe закрыты. Платформа создаст его заново.
Как узнать, какой процесс принадлежит Конфигуратору?
В диспетчере задач включите колонку «Командная строка»: у Конфигуратора там будет параметр DESIGNER.
Что делать, если после обрыва база не открывается?
Восстановите её из последней копии. Если копии нет, попробуйте запустить тестирование и исправление через Конфигуратор на копии файла.
Почему сеанс в консоли кластера не удаляется?
Обычно он ждёт ответа СУБД или держит транзакцию. Отключите соединение, а при неудаче проверьте процесс rphost.