Зависшая 1С не закрывается: снимаем процесс, сеанс и блокировку базы

· 10 мин

Содержание

Если 1С зависла и не реагирует на клики, сначала нажмите Ctrl+Break — так платформа пробует прервать долгую операцию. Не помогло за минуту-две — закройте процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор) через Диспетчер задач. После этого проверьте, не остался ли сеанс на сервере или блокировка файловой базы, иначе следующий вход упрётся в ту же проблему.

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

Сначала диагностика: 1С зависла или просто долго считает

Окно с пометкой «Не отвечает» ещё не значит, что программа умерла. Часто 1С честно выполняет тяжёлый запрос и не перерисовывает интерфейс. Прежде чем что-то убивать, потратьте две минуты на проверку.

Откройте Диспетчер задач (Ctrl+Shift+Esc), вкладка «Подробности», и найдите процесс 1С:

  • 🟢 Загрузка ЦП меняется, память растёт или колеблется — программа работает. Подождите, особенно если запущен отчёт за большой период, закрытие месяца или обновление.
  • 🟡 ЦП около нуля, память не меняется несколько минут — клиент чего-то ждёт: ответа сервера, освобождения блокировки, сетевого диска.
  • 🔴 Один процесс 1С держит ядро процессора на 100% десятки минут — вероятен бесконечный цикл или «тяжёлый» запрос, который уже не стоит ждать.

Ещё один быстрый тест — спросите коллег. Если зависли все пользователи сразу, проблема не в вашем компьютере, а на сервере 1С, СУБД или в сети. Тогда закрывать клиент бесполезно: после перезапуска вы снова повиснете.

Диагностика: выберите симптом

Мягкие способы, которые стоит попробовать первыми

  1. Нажмите Ctrl+Break. Платформа прервёт выполнение кода на клиенте. Если в этот момент идёт вызов сервера, прерывание сработает, когда управление вернётся клиенту.
  2. Нажмите Esc — иногда «зависание» оказывается модальным окном, которое ушло за основное.
  3. Посмотрите на панель задач: нет ли второго окна 1С с вопросом «Сохранить изменения?». Такое окно блокирует главное, и кажется, что программа не реагирует.
  4. Нажмите Alt+F4 на окне 1С. Если программа отвечает хотя бы частично, она закроется штатно.

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

Как закрыть зависшую 1С через Диспетчер задач

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

Какой процесс искать

ПроцессЧто этоКогда встречается
1cv8c.exeтонкий клиентобычная работа пользователей в БП 3.0, ЗУП 3.1, УТ 11
1cv8.exeтолстый клиент и Конфигураторрежим Конфигуратора, старые конфигурации на толстом клиенте
1cestart.exeокно запуска со списком базвисит, если зависло само окно выбора базы

Пошагово

  1. Нажмите Ctrl+Shift+Esc, откройте вкладку «Подробности».
  2. Отсортируйте по столбцу «Имя» и найдите 1cv8c.exe или 1cv8.exe.
  3. Если процессов несколько (открыто несколько баз), ориентируйтесь на загрузку ЦП и объём памяти: висящий обычно выделяется. Можно сначала переключиться на вкладку «Процессы», раскрыть группу 1С и увидеть заголовки окон с именем базы.
  4. Правый клик по процессу → «Снять задачу».
  5. Подождите 10–20 секунд, пока процесс исчезнет из списка, и только потом запускайте 1С снова.

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

Удобно, если Диспетчер задач сам подтормаживает, или когда нужно закрыть 1С на удалённом сервере терминалов. Откройте командную строку и выполните:

:: закрыть все тонкие клиенты текущего пользователя
taskkill /IM 1cv8c.exe /F

:: закрыть толстый клиент и Конфигуратор
taskkill /IM 1cv8.exe /F

:: посмотреть, какие процессы 1С запущены и под какими пользователями
tasklist /V /FI "IMAGENAME eq 1cv8c.exe"

На сервере терминалов под администратором taskkill /IM закроет 1С у всех пользователей. Чтобы снять процесс одного человека, найдите его PID в выводе tasklist /V и выполните taskkill /PID <номер> /F.

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

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

Через консоль кластера

  1. Запустите «Администрирование серверов 1С Предприятия» на сервере или на машине администратора.
  2. Раскройте Центральные серверы 1С:Предприятия → <имя сервера> → Кластеры → <кластер> → Информационные базы → <ваша база> → Сеансы.
  3. Найдите свой сеанс по столбцам «Пользователь» и «Компьютер». Полезно включить колонку с длительностью текущего вызова или временем последней активности.
  4. Правый клик → «Удалить». Сеанс завершится, его транзакция откатится, блокировки освободятся.

Если консоль не открывается или выдаёт ошибку регистрации, на компьютере администратора нужно перерегистрировать radmin.dll той же версии платформы, что и сервер:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Вместо 8.3.xx.xxxx подставьте номер установленной версии. Командную строку запускайте от имени администратора.

Через утилиту rac

На Linux-сервере или в скриптах удобнее консольная утилита rac (нужна запущенная служба ras):

rac cluster list
rac session list --cluster=<uuid-кластера>
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>

Точный набор параметров для вашей версии покажет rac help session.

Из самой конфигурации

В типовых конфигурациях на БСП администратор может завершить чужой сеанс без консоли. В разделе Администрирование откройте Обслуживание и найдите список «Активные пользователи». В клиент-серверном варианте там доступна команда завершения сеанса выбранного пользователя.

Когда виснет весь сервер

Если завис рабочий процесс rphost.exe целиком, его можно снять в Диспетчере задач на сервере, а в крайнем случае перезапустить службу «Агент сервера 1С:Предприятия 8.3» через services.msc.

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

Блокировка файловой базы после аварийного выхода

В файловом варианте база — это один файл 1Cv8.1CD в папке. Каждый запущенный клиент держит его открытым. Если 1С закрыли принудительно, иногда файл остаётся занятым, и при входе появляется ошибка вида Ошибка совместного доступа к файлу '1Cv8.1CD'.

Что проверить по порядку

  1. Процессы 1С на всех компьютерах, которые работают с этой базой. Часто «призрак» висит не у вас, а у коллеги, который ушёл домой с открытой программой. Снимите его так же, как в разделе про Диспетчер задач.
  2. Открытые файлы на файловом сервере. Если база лежит в общей папке, на сервере откройте compmgmt.msc → «Общие папки» → «Открытые файлы». Найдите 1Cv8.1CD и закройте его. Это обрывает доступ к базе у того, кто его держал.
  3. Файл блокировки 1Cv8.cfl в папке базы. Если ни один процесс 1С базу не держит, а вход всё равно запрещён, этот файл можно удалить: платформа создаст новый при следующем запуске.
  4. Временные файлы. Рядом с базой иногда остаётся 1Cv8tmp.1CD от прерванной операции. Удалять его можно только при полностью закрытой базе.

Перед удалением любых файлов в папке базы убедитесь, что в ней никто не работает, и скопируйте папку целиком. Удалённый 1Cv8.1CD равен удалённой базе — путать файлы нельзя.

Если зависает сам запуск: чистим кэш

Бывает, что после аварийного выхода 1С виснет уже на старте, на заставке. Частая причина — повреждённый локальный кэш конфигурации.

  • Быстрый способ: в окне запуска выделите базу → «Изменить» → на последнем шаге в поле дополнительных параметров запуска впишите /ClearCache. Запустите базу, потом параметр уберите.
  • Ручной способ: закройте все окна 1С и удалите папки с длинными именами-идентификаторами внутри %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Сам список баз (ibases.v8i) не трогайте.

Восстановление файловой базы утилитой chdbfl

Жёсткое закрытие в момент записи может повредить внутреннюю структуру файла 1Cv8.1CD. Симптомы: база открывается, но падает на определённых документах или отчётах, появляются ошибки формата потока. Для проверки физической целостности файловой базы у платформы есть утилита chdbfl.exe.

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

  1. Выгоните всех пользователей из базы и закройте 1С на всех компьютерах.
  2. Скопируйте папку базы целиком в другое место. Утилита исправляет файл на месте, и откатить её действия можно только из копии.
  3. Откройте папку платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin, и запустите chdbfl.exe.
  4. В поле имени файла укажите путь к 1Cv8.1CD.
  5. Поставьте флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить».
  6. Дождитесь окончания. На базе в 5–10 ГБ проверка может идти десятки минут, окно в это время выглядит неподвижным — это нормально.

После chdbfl запустите Конфигуратор и выполните логическую проверку: Администрирование → Тестирование и исправление. Она требует монопольного доступа и проверяет уже данные, а не файл: ссылки, итоги регистров, структуру таблиц.

ИнструментЧто проверяетДля какой базыКогда применять
chdbfl.exeфизическую структуру файла 1Cv8.1CDтолько файловаяпосле аварийного закрытия, отключения питания, ошибок чтения
Тестирование и исправлениелогическую целостность данныхфайловая и клиент-сервернаяпосле chdbfl, при «битых» ссылках и итогах
Средства СУБДцелостность базы SQLклиент-сервернаяделает администратор СУБД

Для клиент-серверной базы chdbfl не применяется: целостность там обеспечивает СУБД, а принудительное закрытие клиента не портит файлы данных.

Как не попадать в зависания снова

Разовое зависание — повод закрыть процесс. Регулярное — повод искать причину. Вот что реально снижает их число.

На рабочем месте пользователя

  • 📏 Не формируйте отчёты за годы без отбора. Оборотно-сальдовая ведомость по счёту 60 за три года с детализацией по документам — гарантированное «Не отвечает» на слабом компьютере. Сузьте период или поставьте отбор по контрагенту.
  • 🧠 Следите за памятью. Тонкому клиенту с несколькими открытыми базами тесно на машине с 4 ГБ. 8 ГБ и больше — разумный минимум для бухгалтера.
  • 🛡️ Добавьте исключения в антивирус для папки базы и для %APPDATA%\1C, %LOCALAPPDATA%\1C. Проверка «на лету» каждого обращения к 1Cv8.1CD даёт заметные подвисания.
  • 🔄 Обновляйте платформу. Часть зависаний — известные ошибки конкретной сборки, исправленные в следующих.

На уровне базы и инфраструктуры

  • 🌐 Не работайте с файловой базой по Wi-Fi и VPN. Обрыв связи посреди записи — самый частый путь к повреждению 1Cv8.1CD. Для удалённой работы используйте сервер терминалов, веб-клиент или переход на клиент-серверный вариант.
  • 👥 Следите за числом пользователей. Файловая база при 5–10 активных сотрудниках, одновременно проводящих документы, начинает ждать блокировок. Это сигнал переходить на клиент-серверный вариант.
  • 💾 Держите базу на SSD. На HDD при объёме базы в десятки гигабайт отчёты и проведение заметно тормозят.
  • 🧹 Сокращайте журнал регистрации. Многолетний журнал раздувает папку 1Cv8Log. Старые записи можно сократить в Конфигураторе через Администрирование → Журнал регистрации, предварительно сохранив их в файл.
  • ⏰ Разносите регламентные задания. Загрузка курсов, обмены, полнотекстовый поиск, запущенные в часы пик, отнимают ресурсы у пользователей. Переносите тяжёлые задания на ночь.
Раз в квартал для файловой базы
Выполнено: 0 / 6

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

Пропадут ли данные, если снять 1С через Диспетчер задач?
Записанные и проведённые документы останутся. Потеряется то, что было открыто и не записано, а прерванная запись документа откатится целиком.
Почему после закрытия зависшей 1С не хватает лицензии?
В клиент-серверном варианте сеанс мог остаться на сервере и держать лицензию. Удалите его в консоли кластера, и лицензия освободится.
Сколько ждать, прежде чем закрывать принудительно?
Если процесс активно грузит процессор, а вы запустили тяжёлый отчёт или закрытие месяца, дайте ему 10–15 минут. Если загрузка на нуле больше 3–5 минут, ждать дальше обычно бессмысленно.
Можно ли закрыть 1С у другого пользователя на сервере терминалов?
Да. Администратор находит его процесс 1cv8c.exe на вкладке «Пользователи» Диспетчера задач или по PID через tasklist /V и снимает только его.
Нужно ли запускать chdbfl после каждого зависания?
Нет. Утилита нужна, если зависание закончилось принудительным закрытием во время записи и после этого появились ошибки при открытии базы или документов.