1С не отвечает: от Ctrl+Break до завершения сеанса на сервере
Содержание
Если 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С в Диспетчере задач
Самый частый и безопасный для базы вариант на обычном компьютере.
- Нажмите
Ctrl+Shift+Esc— откроется Диспетчер задач. - Перейдите на вкладку «Подробности» (в Windows 11 — пункт «Подробности» в левой колонке).
- Отсортируйте список по имени и найдите процесс 1С (таблица ниже).
- Если открыто несколько баз, ориентируйтесь на столбец ЦП или память: зависшее окно обычно то, что держит процессор, или то, что «стоит» с нулём.
- Правый клик → «Снять задачу». Подтвердите.
- Подождите 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С Предприятия» (консоль кластера).
- Разверните: сервер → «Кластеры» → ваш кластер → «Информационные базы» → нужная база → «Сеансы».
- Найдите сеанс по имени пользователя и компьютеру. Столбцы с временем начала и последней активности подскажут, какой из них «висит».
- Правый клик → «Удалить».
Если пользователь всё ещё работает в этом сеансе, его клиент получит ошибку соединения. Поэтому удаляйте только сеанс, процесс которого уже закрыт на компьютере пользователя, или договоритесь с человеком заранее.
То же через 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С на любом компьютере, который открыл базу, держит этот файл. Если клиент «упал» у коллеги, а вы не можете зайти в монопольном режиме — дело в нём.
Что делать по порядку:
- Попросите всех, кто работает в базе, выйти. Проверьте их компьютеры на «повисший»
1cv8c.exeи снимите его. - Если процесс уже снят, а база всё равно занята, откройте на компьютере, где лежит папка с базой:
Управление компьютером → Общие папки → Открытые файлы. - Найдите в списке
1Cv8.1CD, посмотрите, какой пользователь его держит, и закройте этот открытый файл (правый клик → «Закрыть открытый файл»).
Шаг 3 — крайняя мера: если человек ещё работает, его клиент получит ошибку чтения. Зато это избавляет от перезагрузки файлового сервера.
Восстановление после аварийного закрытия 1С
Обычно после снятия процесса база открывается как ни в чём не бывало. Если нет — идите от простого к сложному.
Проверьте, что сохранилось
Откройте документ, с которым работали. Если он был записан — он на месте. Если вы проводили документ и закрыли программу в этот момент, проверьте флажок проведения и движения: при сбое транзакция откатывается целиком, документ останется непроведённым, но «половины» проводок не будет.
Очистите кэш, если база открывается с ошибками
Странные ошибки формы, бесконечная загрузка на заставке, «Неизвестная ошибка» сразу после старта — частые последствия аварийного выхода. Помогает очистка локального кэша:
- в окне выбора баз нажмите «Изменить» у нужной базы и в поле «Дополнительные параметры запуска» допишите
/ClearCache, затем запустите и уберите параметр; - либо закройте все окна 1С и удалите папки с длинными именами вида GUID в
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8.
Удаляются только служебные файлы кэша и настроек окон. Данные базы при этом не трогаются, но сохранённые настройки форм и отчётов текущего пользователя могут сброситься.
Проверьте базу на ошибки
Если 1С падала несколько раз подряд или выдаёт ошибки целостности, запустите проверку:
- Сделайте резервную копию базы
— выгрузку в .dt или копию файла
1Cv8.1CD. - Откройте Конфигуратор в монопольном режиме.
Администрирование → Тестирование и исправление, отметьте нужные проверки, запустите.
Для файловой базы есть ещё утилита chdbfl.exe в папке bin платформы — она проверяет физическую целостность файла 1Cv8.1CD, базу при этом никто не должен открывать.
В клиент-серверной базе за физическую целостность отвечает СУБД. Там вместо chdbfl проверяют базу средствами SQL Server или PostgreSQL — это работа администратора.
Как не доводить 1С до зависания
Большая часть зависаний повторяется по одним и тем же причинам. Их и стоит убрать.
📋 На стороне пользователя:
- 📅 формируйте отчёты с отбором по периоду и организации, а не «за всё время»;
- 🧹 не держите открытыми десятки форм: каждая занимает память клиента;
- 🔄 тяжёлые операции (закрытие месяца, групповое перепроведение) запускайте, когда в базе мало людей.
🖥️ На стороне компьютера и сети:
- 🛡️ добавьте папку с файловой базой и папки кэша
%APPDATA%\1Cв исключения антивируса — проверка каждого обращения к1Cv8.1CDтормозит работу в разы; - 📶 файловую базу по Wi-Fi или VPN лучше не открывать: обрыв связи на долю секунды подвешивает клиент;
- ⬆️ держите платформу на актуальном релизе, рекомендованном для вашей конфигурации: часть зависаний — известные и исправленные ошибки платформы.
⚙️ Таймауты сеансов в серверной базе. Чтобы забытые и «упавшие» сеансы не висели часами, в Конфигураторе откройте Администрирование → Параметры информационной базы и задайте «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса». Сеанс без связи с клиентом сначала уснёт и освободит лицензию, потом завершится сам.
⚙️ Перезапуск рабочих процессов. В свойствах рабочего сервера в консоли кластера можно ограничить допустимый объём памяти процесса. Процесс, который распух сверх лимита дольше заданного интервала, будет перезапущен — это защищает от «утечек» без ручного вмешательства. Значения подбирайте под объём памяти сервера и число пользователей.