1С зависла и не закрывается: снимаем процесс, сеанс и блокировку базы
Содержание
Чтобы выйти из 1С принудительно, завершите процесс клиента в диспетчере задач Windows: Ctrl+Shift+Esc → вкладка «Подробности» → процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор) → «Снять задачу». Если программа задумалась на долгой операции, сначала попробуйте Ctrl+Break: платформа спросит, прервать ли выполнение, и окно оживёт без потери сеанса.
Частое заблуждение — что после «Снять задачу» всё закончилось. В клиент-серверной базе сеанс остаётся на сервере ещё какое-то время и держит лицензию и блокировки. В файловой базе файл может остаться открытым по сети. Поэтому выход из 1С — это два шага: закрыть программу у себя и убедиться, что база вас «отпустила».
С чего начать: мягкие способы до снятия задачи
Принудительное закрытие обрывает всё несохранённое: открытый документ, введённые строки, незаписанный отчёт. Поэтому сначала дайте программе шанс закрыться самой.
- Подождите 1–3 минуты, если запущено проведение, закрытие месяца или выгрузка. Индикатор может не двигаться, но процесс работает.
- Нажмите
Ctrl+Break. Это штатное прерывание выполняемого кода. Появится вопрос о прерывании — ответьте «Да». - Нажмите
Alt+F4на главном окне или на «зависшей» форме. Иногда висит не программа, а модальное окно, спрятанное за другими окнами. Проверьте панель задач: у 1С может быть второе окно. - Только потом переходите к диспетчеру задач.
Если 1С «висит» только у одного пользователя, а у остальных работает, почти всегда дело в его сеансе или компьютере. Если встали все — проблема на сервере или в общей папке с файловой базой. От этого зависит, с какого раздела ниже начинать.
Как закрыть 1С через диспетчер задач Windows
Это основной способ для обычного пользователя. Права администратора не нужны, если процесс запущен под вашей учётной записью.
- Откройте диспетчер задач:
Ctrl+Shift+Esc. - Перейдите на вкладку «Подробности» (в Windows 7 — «Процессы»).
- Найдите процессы платформы. Ориентируйтесь по таблице.
- Выделите нужный и нажмите «Снять задачу». Подтвердите.
| Процесс | Что это | Можно снимать? |
|---|---|---|
1cv8c.exe | тонкий клиент — обычный режим работы бухгалтера | да |
1cv8.exe | толстый клиент или Конфигуратор | да, но в Конфигураторе потеряете несохранённые правки |
1cv8s.exe | стартер — окно выбора базы | да, ничего не потеряете |
1cestart.exe | программа запуска, через которую открывается список баз | да |
rphost.exe, rmngr.exe, ragent.exe | процессы сервера 1С (только на сервере) | нет, это не «ваша» 1С |
Если открыто несколько баз, процессов 1cv8c.exe будет несколько. Нужный определите по заголовку окна на вкладке «Процессы» или по столбцу «ЦП»: зависший процесс часто грузит одно ядро на 100% либо стоит на нуле и «Не отвечает».
Не завершайте процесс Конфигуратора во время обновления конфигурации или реструктуризации базы. Обрыв на этом этапе может оставить базу в незавершённом состоянии. Здесь лучше подождать даже 30–40 минут.
Принудительное завершение 1С из командной строки
Командная строка нужна, когда диспетчер задач сам не открывается, когда процессов десяток или когда нужно снять 1С у конкретного пользователя на терминальном сервере.
Посмотреть, какие процессы 1С запущены:
tasklist /FI "IMAGENAME eq 1cv8*"
Закрыть все тонкие клиенты текущего пользователя:
taskkill /IM 1cv8c.exe /F
Закрыть и толстый клиент, и Конфигуратор вместе с дочерними процессами:
taskkill /IM 1cv8.exe /F /T
Ключ /F означает принудительное завершение, /T — снять и дерево дочерних процессов. Без /F Windows только попросит программу закрыться, а зависшая 1С эту просьбу проигнорирует.
Закрыть 1С конкретному пользователю на терминальном сервере
Администратор RDP-сервера может снять 1С у одного сотрудника, не трогая остальных. Командную строку запустите от имени администратора:
taskkill /F /FI "USERNAME eq ivanova" /IM 1cv8c.exe
То же в PowerShell:
Get-Process 1cv8* -IncludeUserName | Where-Object UserName -like "*ivanova" | Stop-Process -Force
Команда taskkill /IM 1cv8c.exe /F, запущенная от администратора на терминальном сервере без фильтра по пользователю, закроет 1С у всех сотрудников сразу. Несохранённые документы пропадут у каждого. Предупредите людей или используйте фильтр USERNAME.
Если файловая база осталась занята после закрытия
Файловую базу
в общей папке держит открытый файл 1Cv8.1CD. Если клиент упал, а компьютер пользователя «завис» в сети, сервер может считать файл занятым. Откройте командную строку от администратора на компьютере, где лежит база:
net file
Найдите в списке строку с путём к 1Cv8.1CD, запомните её номер в первом столбце и закройте:
net file 15 /close
Тот же список есть в графическом виде: Управление компьютером → Общие папки → Открытые файлы. Закрытие файла оборвёт работу того пользователя, который держит базу, поэтому сначала проверьте по столбцу «Пользователь», чей это сеанс.
Как завершить сеансы пользователей из самой программы
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) администратор базы может выгнать пользователей, не заходя на сервер. Это нужно, когда кто-то «завис» и держит базу перед обновлением или закрытием месяца.
Список активных пользователей
Список сеансов открывается из раздела Администрирование → Обслуживание (в части релизов раздел называется «Поддержка и обслуживание»), ссылка «Активные пользователи». Там видно, кто подключён, с какого компьютера и с какого времени.
В клиент-серверной базе из этого списка можно завершить выбранный сеанс. Программа попросит пароль администратора кластера, если он задан. В файловой базе отдельного сеанса так не завершить — только всех сразу через блокировку.
Блокировка работы пользователей
В том же разделе есть «Блокировка работы пользователей». Порядок такой:
- Укажите текст сообщения, например «Обновление базы, вернёмся в 14:00».
- Задайте время начала и окончания блокировки.
- Задайте код разрешения — по нему администратор сможет войти в заблокированную базу.
- Нажмите «Установить блокировку».
Пользователи увидят предупреждение, а через несколько минут программа закроет их сеансы сама. Блокировка работает и в файловом, и в клиент-серверном варианте.
Войти в заблокированную базу можно с параметром запуска /UC<код>, например /UC12345. Его добавляют в поле «Дополнительные параметры запуска» в настройках базы в списке баз.
Не забудьте снять блокировку после работ. Иначе утром позвонит вся бухгалтерия: никто не может войти, а сообщение висит со вчерашнего дня.
Принудительное завершение сеансов на сервере 1С
Для клиент-серверной базы главный инструмент — консоль «Администрирование серверов 1С Предприятия». Она ставится вместе с сервером или с платформой (компонент администрирования).
Через консоль администрирования кластера
- Откройте консоль и разверните:
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер → Информационные базы → нужная база → Сеансы. - Найдите сеанс по столбцам «Пользователь», «Компьютер», «Начало работы».
- Правой кнопкой по сеансу → «Удалить». Сеанс оборвётся, лицензия освободится.
Если консоль при запуске пишет, что оснастка не найдена или не открывается, перерегистрируйте библиотеку radmin.dll из каталога bin установленной платформы от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути подставьте свой — он совпадает с версией сервера.
Блокировка начала сеансов в свойствах базы
В той же консоли откройте свойства информационной базы. Там есть флажок «Блокировка начала сеансов включена», поля начала и конца блокировки, сообщение и код разрешения. Это серверный аналог блокировки из БСП: новые подключения не пройдут, а уже открытые сеансы удалите вручную в списке «Сеансы».
Через утилиту rac
Если графической консоли нет под рукой или нужен скрипт, используйте rac. Ей нужна запущенная служба сервера администрирования ras (по умолчанию порт 1545).
rac cluster list
rac infobase summary list --cluster=<uuid кластера>
rac session list --cluster=<uuid кластера> --infobase=<uuid базы>
rac session terminate --cluster=<uuid кластера> --session=<uuid сеанса>
Идентификаторы берите из вывода предыдущей команды. Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Остальные параметры смотрите в справке rac help session.
Когда сеанс не удаляется
Бывает, что сеанс пропадает из списка и через секунду возвращается или висит на долгой транзакции. Тогда остаётся рабочий процесс:
- 🔍 в консоли откройте «Рабочие процессы» и посмотрите, какой
rphost.exeобслуживает зависший сеанс и сколько памяти он занимает; - 🛑 этот процесс можно завершить в диспетчере задач на сервере — кластер запустит новый;
- 🔁 последнее средство — перезапуск службы «Агент сервера 1С:Предприятия 8.3».
Завершение rphost.exe оборвёт все сеансы, которые он обслуживал, а не только зависший. Перезапуск службы агента выкинет всех пользователей всех баз на сервере. Делайте это после предупреждения или вне рабочего времени. Незаписанные данные пользователей пропадут, но транзакции, которые не успели завершиться, откатятся — база останется согласованной.
Проверка файловой базы утилитой chdbfl.exe после аварийного выхода
Если файловая база закрылась аварийно (сняли процесс во время записи, отключилось питание, пропала сеть), после этого она может не открываться или выдавать ошибки чтения. Для физической проверки файла 1Cv8.1CD в составе платформы есть утилита chdbfl.exe.
Где лежит: каталог bin установленной платформы, например C:\Program Files\1cv8\8.3.24.1548\bin\chdbfl.exe.
Порядок работы:
- Убедитесь, что в базе никого нет: все клиенты закрыты, файл не открыт по сети (
net file). - Скопируйте файл
1Cv8.1CDв другое место. Это ваша страховка: исправление ошибок может удалить повреждённые данные. - Запустите
chdbfl.exe, укажите путь к файлу1Cv8.1CD. - Сначала запустите проверку без флажка исправления ошибок. Посмотрите, что найдено.
- Если ошибки есть, включите флажок «Исправлять обнаруженные ошибки» и запустите ещё раз.
- Откройте базу. Если она запустилась, сделайте в Конфигураторе
Администрирование → Тестирование и исправлениес проверкой логической целостности.
chdbfl.exe работает только с файловыми базами. Серверную базу
на MS SQL или PostgreSQL проверяют средствами СУБД и тем же «Тестированием и исправлением» в Конфигураторе.
Если ошибок нет, а база не открывается — дело не в файле, а в блокировке или правах на папку. Проверьте, что у пользователя есть права на запись в каталог базы: платформе нужно создавать там служебные файлы.
Как настроить таймауты, чтобы зависшие сеансы закрывались сами
Брошенные сеансы — главная причина ситуации «1С закрыта, а лицензий не хватает». Платформа 8.3 умеет закрывать их без администратора.
Засыпание и завершение пассивного сеанса
В Конфигураторе: Администрирование → Параметры информационной базы. Там два поля в секундах:
| Параметр | Что делает | Пример значения |
|---|---|---|
| Засыпание пассивного сеанса | сеанс без активности «засыпает» и отдаёт лицензию | 1200 (20 минут) |
| Завершение спящего сеанса | заснувший сеанс закрывается совсем | 86400 (сутки) |
Уснувший сеанс у пользователя просыпается сам, когда он вернётся к компьютеру, — если лицензия к тому времени свободна. Ноль в поле означает, что механизм выключен.
Настройки кластера против «распухших» процессов
В свойствах кластера в консоли задаются ограничения, при которых сервер сам перезапустит проблемный рабочий процесс: допустимый объём памяти рабочих процессов и интервал превышения. Также есть флажок «Принудительно завершать проблемные процессы». Значения подбирают под память сервера: например, при 32 ГБ и одном рабочем процессе нет смысла ставить предел в 4 ГБ.
Привычки, которые снижают число зависаний
- 📝 Закрывать месяц, перепроводить документы и формировать тяжёлые отчёты не в часы пик.
- 💾 Не держать базу открытой на ноутбуке, который уходит в сон: файловая база после пробуждения часто остаётся заблокированной.
- 🧹 При странном поведении интерфейса — запускать 1С с параметром
/ClearCache. - 🔄 Обновлять платформу: в новых сборках исправляют ошибки, из-за которых клиент «вешается» на конкретных операциях.
Частые вопросы
Потеряются ли данные, если снять 1С в диспетчере задач?
Почему после закрытия 1С пишет, что лицензии закончились?
Можно ли закрыть 1С другому пользователю без доступа к серверу?
Конфигуратор завис на «Обновлении конфигурации базы данных». Снимать?
1cv8.exe. Если растёт — процесс работает, ждите. Если стоит на нуле больше часа, снимайте и сразу восстанавливайте базу из резервной копии.