1С не отвечает: как закрыть программу и не повредить базу

· 9 мин

Содержание

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

После аварийного выхода в базе может остаться «висящий» сеанс. Он мешает войти снова, занимает лицензию и блокирует обновление. Его завершают через список активных пользователей, а в клиент-серверном варианте — через консоль кластера. Всё ниже относится к платформе 1С:Предприятие 8.3 и не зависит от конфигурации: БП, ЗУП, УТ ведут себя одинаково.

Зависла или просто долго считает: как отличить

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

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

Что видитеЧто это значитЧто делать
ЦП 10–25% и выше, память меняетсяПрограмма работаетПодождите 5–15 минут
ЦП около 0%, память стоит, окно «Не отвечает»Процесс ждёт: блокировку, сеть, серверПроверьте сеть и других пользователей, потом прерывайте
Память растёт без остановки, до нескольких ГБОтчёт выбирает слишком много данныхПрерывайте сразу, иначе зависнет весь компьютер
Окно 1С белое, но ЦП 0% и в базе работают коллегиКлиент потерял связь с сервером или файлом базыЗакрывайте процесс

Ещё признаки, что 1С занята делом, а не зависла:

  • ⏳ в форме крутится индикатор длительной операции или виден процент выполнения;
  • 🔄 в строке состояния меняется сообщение;
  • 💾 в «Мониторе ресурсов» Windows процесс читает или пишет файл базы.

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

Прерывание без закрытия: Ctrl+Break и Alt+F4

Это самый мягкий способ выйти из зависшей операции. Сеанс остаётся, база не страдает.

  1. Щёлкните по окну 1С, чтобы оно было активным.
  2. Нажмите Ctrl+Break. На ноутбуке без клавиши Break ищите сочетание Ctrl+Fn+B или Ctrl+Fn+Pause: оно зависит от производителя.
  3. В вопросе о прерывании выполнения ответьте «Да».
  4. Подождите до минуты: транзакция откатывается, это не мгновенно.

Ctrl+Break прерывает выполнение кода на встроенном языке: цикл в обработке, формирование отчёта, групповое перепроведение. Он не поможет, если клиент ждёт ответа от сервера по сети или упал сам интерфейс.

Если прерывание прошло, закройте программу обычным способом: Alt+F4 или крестик окна. 1С спросит про несохранённые формы — так данные можно ещё сохранить.

Документ, который вы правили до зависания, после прерывания обычно ещё открыт. Сначала нажмите «Записать», и только потом выходите.

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

Если окно не реагирует на клавиши 3–5 минут, а ЦП стоит на нуле, остаётся принудительное закрытие.

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

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

Порядок действий

  1. Откройте Диспетчер задач: Ctrl+Shift+Esc.
  2. На вкладке «Процессы» найдите «1С:Предприятие» со статусом «Не отвечает».
  3. Если открыто несколько окон 1С, перейдите на «Подробности» и сверьте столбец «Имя пользователя».
  4. Выделите процесс и нажмите «Снять задачу».
  5. Подождите 30–60 секунд, прежде чем запускать базу снова.

Если «Снять задачу» не срабатывает, закройте процесс из командной строки. Узнайте его номер в столбце «ИД процесса» и выполните:

tasklist /FI "IMAGENAME eq 1cv8c.exe"
taskkill /PID 4812 /F

Число 4812 замените своим ИД. Команду taskkill /IM 1cv8c.exe /F без номера используйте только на своём компьютере.

На терминальном сервере taskkill /IM 1cv8c.exe /F от имени администратора закроет 1С у всех сотрудников сразу. Они потеряют несохранённые документы. Снимайте процесс только по своему ИД или своему пользователю.

Не снимайте процесс, если в это время идёт обновление конфигурации или «Тестирование и исправление». Про этот случай — отдельный раздел ниже.

Висящий сеанс после аварийного выхода: завершаем из 1С

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

В типовых конфигурациях на БСП висящий сеанс можно закрыть без консоли:

  1. Откройте Администрирование → Обслуживание.
  2. Перейдите по ссылке «Активные пользователи».
  3. Найдите сеанс со своим именем и временем начала до зависания. Ваш текущий сеанс начат только что — сверьте время, чтобы не закрыть его.
  4. Выделите старый сеанс и выполните команду завершения сеанса в командной панели списка.

Для этого нужны права администратора. Если в клиент-серверной базе 1С попросит параметры администрирования кластера — введите логин и пароль администратора кластера или передайте задачу тому, у кого они есть.

В файловой базе отдельного сеанса на сервере нет. После закрытия процесса блокировка снимается, когда Windows освобождает файл базы. Обычно это секунды, при работе по сети — до пары минут.

Консоль администрирования кластера: если сеанс не уходит

Для клиент-серверной базы самый надёжный способ — консоль администрирования серверов 1С. Она устанавливается вместе с платформой как компонент «Администрирование сервера 1С:Предприятия».

Завершение сеанса в консоли

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

Если консоль не открывается или «Сервер 1С:Предприятия» не виден в списке оснасток, перерегистрируйте библиотеку radmin.dll той же разрядности, что и консоль, из папки bin установленной платформы:

regsvr32 "C:\Program Files\1cv8\8.3.24.1586\bin\radmin.dll"

Номер платформы в пути подставьте свой. Командную строку запускайте от имени администратора.

То же через rac

Если на сервере запущен ras, сеансы можно закрыть утилитой rac из той же папки bin:

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

Если на кластере задан администратор, добавьте параметры с его логином и паролем; точные ключи покажет rac help session.

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

Если завис рабочий процесс целиком

Когда тормозит не один пользователь, а вся база, в консоли видно, что процесс rphost занял почти всю память или ЦП. Его можно выключить в разделе «Рабочие процессы». Это оборвёт все сеансы на нём, поэтому делайте это после предупреждения коллег, лучше в обед или после работы. Перезапуск службы «Агент сервера 1С:Предприятия» — крайняя мера с тем же эффектом для всех баз сервера.

Зависание в монопольном режиме и при обновлении

Монопольный режим нужен для обновления структуры базы, загрузки .dt, тестирования и исправления. Зависание здесь — самый опасный случай.

Если идёт обновление или реструктуризация

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

Если за 30 минут нет ни нагрузки на ЦП, ни обращений к диску, процесс действительно встал. Тогда:

  1. Сделайте копию папки файловой базы целиком, если копии свежее вчерашней нет.
  2. Закройте 1cv8.exe.
  3. Запустите от имени администратора chdbfl.exe из папки bin платформы и проверьте файл 1Cv8.1CD.
  4. Повторите обновление.

В клиент-серверной базе СУБД откатит незавершённую транзакцию сама, но восстановление из резервной копии всё равно держите наготове.

Если после зависания база не пускает

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

  • войти с параметром запуска /UC<код разрешения>, где код — тот, что указан в настройке блокировки;
  • запустить базу с параметром /C"РазрешитьРаботуПользователей";
  • открыть Администрирование → Обслуживание → Блокировка работы пользователей и снять флажок.

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

Подсказка: что делать по симптому

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

Как настроить 1С, чтобы она реже зависала

Профилактика экономит больше времени, чем любой способ выхода. Что делать на рабочем месте:

  • 🧹 раз в несколько месяцев и после обновления платформы очищать кэш: параметр /ClearCache в свойствах базы или удаление папки с идентификатором базы в %APPDATA%\1C\1cv8;
  • 🛡️ добавить папку файловой базы и кэш 1С в исключения антивируса — проверка каждого обращения к 1Cv8.1CD даёт подвисания на ровном месте;
  • 💻 ставить 64-разрядный клиент, если в компьютере больше 4 ГБ памяти: 32-разрядный упирается в лимит памяти на тяжёлых отчётах;
  • 📅 формировать отчёты за нужный период и с отборами, а не «за всё время по всем».

Что настроить администратору сервера:

ГдеПараметрЗачем
Свойства кластера«Интервал перезапуска»Плановый перезапуск рабочих процессов, пока память не «распухла»
Свойства кластера«Допустимый объём памяти»Процесс, превысивший порог, перезапускается сам
Свойства информационной базы«Время засыпания пассивного сеанса», «Время завершения спящего сеанса»Висящие сеансы после обрыва связи закрываются автоматически

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

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

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

Чем снятие процесса отличается от удаления сеанса в консоли?
Снятие процесса закрывает программу на компьютере, но сеанс на сервере может повисеть ещё несколько минут. Удаление в консоли сразу освобождает лицензию и блокировки.
Почему после аварийного выхода 1С не даёт войти, хотя лицензий хватало?
Старый сеанс ещё числится на сервере и занимает лицензию. Удалите его в консоли кластера или в списке активных пользователей.
Можно ли выйти из зависшей 1С у сотрудника удалённо?
Да. Администратор завершает его сеанс в консоли кластера или в «Активных пользователях». На терминальном сервере можно снять процесс этого пользователя в Диспетчере задач на вкладке «Пользователи».
Перезагрузка компьютера вредит базе?
Для клиент-серверной базы — нет, транзакцию откатит СУБД. Для файловой базы перезагрузка посреди записи хуже, чем снятие процесса: после неё запустите «Тестирование и исправление».
Что делать, если 1С зависает каждый день в одно и то же время?
Скорее всего, в это время работает регламентное задание или резервное копирование. Посмотрите расписание регламентных заданий и время запуска бэкапа и разнесите их с рабочими часами.