1С не отвечает: от Ctrl+Break до завершения сеанса на сервере

· 10 мин

Содержание

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

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

Сначала проверьте, зависла ли 1С на самом деле

Половина «зависаний» на деле — программа, которая просто занята или ждёт ответа. Прежде чем что-то снимать, потратьте минуту на проверку.

🔍 Что посмотреть до закрытия:

  • 🪟 Скрытое окно. Модальный вопрос («Записать изменения?», «Файл уже существует») мог уйти под другое окно. Нажмите Alt+Tab или кликните по значку 1С на панели задач. Окно 1С не реагирует на клики как раз потому, что ждёт ответа в этом диалоге.
  • ⏳ Долгая операция. Закрытие месяца , свёртка, большой отчёт без отборов, загрузка выписки — всё это может идти 10–30 минут. В заголовке окна Windows допишет «Не отвечает», но работа идёт.
  • 📊 Активность процесса. Откройте Диспетчер задач (Ctrl+Shift+Esc), вкладку «Подробности». Если у 1cv8c.exe меняется загрузка ЦП или объём памяти — процесс жив и считает. Если 0 % ЦП несколько минут подряд — скорее всего, он ждёт: блокировку, сеть или сервер.
  • 🔒 Ожидание блокировки. В сетевой и серверной базе ваш документ может ждать, пока другой пользователь освободит те же данные. Такое ожидание заканчивается само, обычно ошибкой блокировки через несколько десятков секунд.

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

Ctrl+Break — мягкий способ

Комбинация Ctrl+Break прерывает выполняющийся встроенный код: запрос, формирование отчёта, обработку. 1С выдаст сообщение о прерывании, а окно останется рабочим. На ноутбуках без клавиши Break ищите сочетание с Fn (часто Fn+B или Fn+Pause, зависит от производителя).

Способ не сработает, если программа ждёт ответа от сервера или сети, — там прерывать нечего на стороне клиента.

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

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

Самый частый и безопасный для базы вариант на обычном компьютере.

  1. Нажмите Ctrl+Shift+Esc — откроется Диспетчер задач.
  2. Перейдите на вкладку «Подробности» (в Windows 11 — пункт «Подробности» в левой колонке).
  3. Отсортируйте список по имени и найдите процесс 1С (таблица ниже).
  4. Если открыто несколько баз, ориентируйтесь на столбец ЦП или память: зависшее окно обычно то, что держит процессор, или то, что «стоит» с нулём.
  5. Правый клик → «Снять задачу». Подтвердите.
  6. Подождите 10–20 секунд и откройте базу снова.

Вкладка «Процессы» тоже подойдёт, но там 1С сгруппирована под одной строкой. Если у вас открыто три базы, а зависла одна, на «Подробностях» вы закроете ровно нужное окно.

ПроцессЧто этоМожно снимать?
1cv8c.exeТонкий клиент — обычный режим работы бухгалтераДа
1cv8.exeТолстый клиент или КонфигураторДа, но не во время обновления базы
1cestart.exeОкно выбора баз (стартер)Да, ни на что не влияет
rphost.exeРабочий процесс сервера 1СТолько администратору, с пониманием последствий
rmngr.exe, ragent.exeМенеджер кластера и агент сервераНет

Работаете через веб-клиент в браузере? Закройте вкладку или сам браузер. Сеанс на сервере останется и отвалится по таймауту — либо удалите его вручную, как описано ниже.

Завершение процесса 1С через командную строку

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

Посмотреть, какие процессы 1С запущены:

tasklist /fi "imagename eq 1cv8c.exe"
tasklist /fi "imagename eq 1cv8.exe"

В выводе будет столбец PID — номер процесса. Закрыть один конкретный процесс:

taskkill /pid 4812 /f

Закрыть все тонкие клиенты текущего пользователя:

taskkill /im 1cv8c.exe /f

Ключ /f означает принудительное завершение — без попытки «вежливо» закрыть окно. Без него зависшее окно обычно не реагирует.

На терминальном сервере

Команда taskkill /im 1cv8c.exe /f, запущенная администратором на терминальном сервере, закроет 1С у всех пользователей. Каждый потеряет несохранённый документ. Поэтому фильтруйте по имени пользователя:

tasklist /fi "imagename eq 1cv8c.exe" /fi "username eq ivanova"
taskkill /fi "imagename eq 1cv8c.exe" /fi "username eq ivanova" /f

То же самое в PowerShell — удобно, если нужно увидеть владельца процесса:

Get-Process 1cv8c -IncludeUserName
Stop-Process -Id 4812 -Force

Параметр -IncludeUserName требует PowerShell, запущенного от администратора.

На другом компьютере в сети

taskkill умеет работать удалённо, если у вас есть права администратора на том компьютере:

taskkill /s BUH-PC-03 /im 1cv8c.exe /f

Перед этим предупредите человека за тем компьютером: его открытая форма закроется без сохранения.

Зависание в клиент-серверной 1С: что сделать на сервере

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

Удалить сеанс в консоли администрирования

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

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

То же через rac

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

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

Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров — в rac help session.

Из самой базы

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть список «Активные пользователи» в разделе Администрирование. Из него администратор базы может завершить сеанс другого пользователя без доступа к серверу. В файловом варианте эта кнопка не работает — там сеанс живёт ровно столько, сколько процесс на компьютере.

Когда зависает сам сервер

Если тормозят все пользователи сразу, проблема не в клиенте. Посмотрите в консоли кластера:

  • 📈 «Рабочие процессы» — какой rphost занимает память и процессор;
  • 🔗 «Соединения» и «Блокировки» базы — кто кого ждёт;
  • 🗄️ активные запросы на стороне СУБД (в SQL Server — монитор активности, в PostgreSQL — представление pg_stat_activity).

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

Файловая база: что держит файл после аварии

В файловом варианте база — это файл 1Cv8.1CD в общей папке. Процесс 1С на любом компьютере, который открыл базу, держит этот файл. Если клиент «упал» у коллеги, а вы не можете зайти в монопольном режиме — дело в нём.

Что делать по порядку:

  1. Попросите всех, кто работает в базе, выйти. Проверьте их компьютеры на «повисший» 1cv8c.exe и снимите его.
  2. Если процесс уже снят, а база всё равно занята, откройте на компьютере, где лежит папка с базой: Управление компьютером → Общие папки → Открытые файлы.
  3. Найдите в списке 1Cv8.1CD, посмотрите, какой пользователь его держит, и закройте этот открытый файл (правый клик → «Закрыть открытый файл»).

Шаг 3 — крайняя мера: если человек ещё работает, его клиент получит ошибку чтения. Зато это избавляет от перезагрузки файлового сервера.

Восстановление после аварийного закрытия 1С

Обычно после снятия процесса база открывается как ни в чём не бывало. Если нет — идите от простого к сложному.

Проверьте, что сохранилось

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

Очистите кэш, если база открывается с ошибками

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

  • в окне выбора баз нажмите «Изменить» у нужной базы и в поле «Дополнительные параметры запуска» допишите /ClearCache, затем запустите и уберите параметр;
  • либо закройте все окна 1С и удалите папки с длинными именами вида GUID в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.

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

Проверьте базу на ошибки

Если 1С падала несколько раз подряд или выдаёт ошибки целостности, запустите проверку:

  1. Сделайте резервную копию базы — выгрузку в .dt или копию файла 1Cv8.1CD.
  2. Откройте Конфигуратор в монопольном режиме.
  3. Администрирование → Тестирование и исправление, отметьте нужные проверки, запустите.

Для файловой базы есть ещё утилита chdbfl.exe в папке bin платформы — она проверяет физическую целостность файла 1Cv8.1CD, базу при этом никто не должен открывать.

В клиент-серверной базе за физическую целостность отвечает СУБД. Там вместо chdbfl проверяют базу средствами SQL Server или PostgreSQL — это работа администратора.

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

Большая часть зависаний повторяется по одним и тем же причинам. Их и стоит убрать.

📋 На стороне пользователя:

  • 📅 формируйте отчёты с отбором по периоду и организации, а не «за всё время»;
  • 🧹 не держите открытыми десятки форм: каждая занимает память клиента;
  • 🔄 тяжёлые операции (закрытие месяца, групповое перепроведение) запускайте, когда в базе мало людей.

🖥️ На стороне компьютера и сети:

  • 🛡️ добавьте папку с файловой базой и папки кэша %APPDATA%\1C в исключения антивируса — проверка каждого обращения к 1Cv8.1CD тормозит работу в разы;
  • 📶 файловую базу по Wi-Fi или VPN лучше не открывать: обрыв связи на долю секунды подвешивает клиент;
  • ⬆️ держите платформу на актуальном релизе, рекомендованном для вашей конфигурации: часть зависаний — известные и исправленные ошибки платформы.

⚙️ Таймауты сеансов в серверной базе. Чтобы забытые и «упавшие» сеансы не висели часами, в Конфигураторе откройте Администрирование → Параметры информационной базы и задайте «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса». Сеанс без связи с клиентом сначала уснёт и освободит лицензию, потом завершится сам.

⚙️ Перезапуск рабочих процессов. В свойствах рабочего сервера в консоли кластера можно ограничить допустимый объём памяти процесса. Процесс, который распух сверх лимита дольше заданного интервала, будет перезапущен — это защищает от «утечек» без ручного вмешательства. Значения подбирайте под объём памяти сервера и число пользователей.

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

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