Зависла 1С: как остановить операцию, сеанс или процесс и не повредить базу
Содержание
Чтобы прервать работу 1С без вреда для базы, двигайтесь от мягкого способа к жёсткому. Сначала нажмите Ctrl+Break в зависшем окне. Не помогло — завершите сеанс из списка активных пользователей или в консоли кластера серверов. Снимать процесс в Диспетчере задач Windows стоит только в самом конце, когда остальное не сработало.
Порядок важен. Мягкие способы дают платформе откатить незаконченную транзакцию. Жёсткие обрывают её на полуслове, и в файловой базе это иногда заканчивается тестированием и исправлением. Всё ниже относится к платформе 8.3 и подходит для любых типовых конфигураций: БП 3.0, ЗУП 3.1, УТ 11.
Перед остановкой: выясните, кто и что сейчас делает
Зависание одного окна и зависание всей базы — разные ситуации. Прежде чем что-то снимать, ответьте на три вопроса.
- 🔍 Висит только у вас или у всех? Если коллеги работают нормально, проблема в вашем сеансе. Трогать сервер не нужно.
- ⏳ Что было запущено? Закрытие месяца , перепроведение за год, загрузка выписки или обновление — это долгие операции. Им нормально идти 10–40 минут.
- 🧩 Какой вариант базы? Файловая (папка с файлом
1Cv8.1CD) или клиент-серверная (кластер 1С плюс СУБД). От этого зависят инструменты.
Список текущих сеансов в типовых конфигурациях открывается так: Администрирование → Обслуживание → Активные пользователи. В Конфигураторе тот же список есть в меню Администрирование → Активные пользователи. Там видно имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание) и время начала сеанса.
В клиент-серверном варианте больше информации даёт консоль кластера. В свойствах сеанса есть поля о текущем серверном вызове и времени вызова. Если счётчик времени растёт, сеанс действительно что-то делает на сервере, а не просто висит в ожидании.
Перед жёсткой остановкой подождите ещё 5–10 минут, если операция массовая. Индикатор прогресса в 1С обновляется неравномерно и может «стоять» на одном проценте, пока сервер дописывает данные.
Как прервать операцию в своём окне 1С
Самый безопасный способ — остановить код изнутри.
Сочетание Ctrl+Break
- Сделайте активным окно 1С, в котором идёт операция.
- Нажмите
Ctrl+Break(на ноутбуках без клавиши Break ищитеCtrl+Fn+BилиCtrl+Fn+Pause, зависит от производителя). - Платформа спросит, прервать ли выполнение. Подтвердите.
- Дождитесь сообщения об ошибке или о прерывании. Транзакция откатится, база останется в прежнем состоянии.
Прерывание срабатывает не мгновенно. Если в момент нажатия выполняется тяжёлый запрос к СУБД, платформа остановит работу только после его завершения или на ближайшей точке проверки. Нажмите один раз и ждите. Повторные нажатия ничего не ускоряют.
Отмена длительной операции кнопкой
Многие типовые обработки (закрытие месяца, групповое перепроведение, обновление информационной базы) выполняются в фоне. На форме с индикатором есть кнопка отмены. Она снимает фоновое задание корректно, через механизм платформы.
Закрытие окна и выход
Если интерфейс отвечает, закройте приложение через меню (значок с тремя полосками) или крестик главного окна. При открытых несохранённых документах 1С предложит их записать.
Не выбирайте «Записать» в документе, который заполнялся в момент зависания. Он может быть заполнен частично. Лучше закрыть без записи и повторить ввод.
Завершение чужих сеансов: способы для файловой и серверной базы
Пользователь ушёл домой и оставил базу открытой, а вам нужно обновление. Или у бухгалтера «повисла» 1С, и он не может войти заново. Тогда сеанс завершают со стороны.
Через форму «Активные пользователи»
В типовых конфигурациях на базе БСП форма активных пользователей умеет завершать сеансы. Выделите строку и найдите в командной панели команду завершения сеанса. Сработает она при условии, что у вас полные права. В клиент-серверной базе может понадобиться ещё и пароль администратора кластера, если он задан.
Блокировка работы пользователей
Когда нужно освободить базу целиком, удобнее установить блокировку. Путь в БП 3.0, ЗУП 3.1 и УТ 11: Администрирование → Обслуживание → Блокировка работы пользователей.
| Поле | Что указать |
|---|---|
| Сообщение | «База закрывается на обновление в 19:00» |
| Время начала | через 5–10 минут, чтобы люди успели сохранить работу |
| Код разрешения | любое слово, например upd |
После включения пользователи увидят предупреждение и будут отключены в указанное время. Сами вы войдёте, добавив к строке запуска параметр /UCupd (код разрешения без пробела после /UC).
Не забудьте снять блокировку после работ. Иначе утром никто не сможет войти, а сообщение об ошибке будет повторять ваш текст про обновление.
Файловая база: только средствами 1С или Windows
У файловой базы нет кластера. Если блокировка не сработала (сеанс «мертвый», клиент завис), остаётся найти компьютер пользователя по колонке «Компьютер» в списке активных пользователей и закрыть 1С там. Если база стоит на терминальном сервере, администратор завершит процесс пользователя в Диспетчере задач на вкладке «Пользователи».
Остановка сеансов и процессов через консоль кластера
Для клиент-серверной базы главный инструмент — «Администрирование серверов 1С Предприятия». Консоль подключается к агенту сервера по порту 1540.
Пошагово в консоли
- Откройте консоль, разверните
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → Локальный кластер. - Откройте
Информационные базы → нужная база → Сеансы. - Найдите сеанс по пользователю, компьютеру или времени начала.
- Если хотите остановить только текущую операцию, а пользователь пусть остаётся в базе, — в контекстном меню сеанса выберите прерывание текущего серверного вызова. Команда есть в консоли новых версий платформы.
- Если нужно выкинуть пользователя целиком, выберите
Удалить. Сеанс завершится, лицензия освободится.
Удаление сеанса — штатная операция. Платформа сама откатит незавершённую транзакцию этого сеанса. Остальные пользователи ничего не заметят.
Если консоль не открывается
Частая причина — не зарегистрирована библиотека консоли. Запустите командную строку от имени администратора и выполните (подставьте свою версию платформы):
cd "C:\Program Files\1cv8\8.3.24.1586\bin"
regsvr32 radmin.dll
После этого консоль подхватит оснастку той же версии, что и сервер.
Утилита rac: то же из командной строки
На серверах без графики или в скриптах сеансы завершают через rac. Ей нужен запущенный сервер администрирования ras:
ras cluster --port=1545 localhost:1540
Дальше по порядку получаем идентификаторы и завершаем сеанс:
rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<UUID кластера>
rac localhost:1545 session list --cluster=<UUID кластера> --infobase=<UUID базы>
rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>
Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров для вашей версии показывает rac help session.
В выводе session list смотрите поля user-name, host и app-id. По ним легко отличить живого бухгалтера от зависшего фонового задания или открытого Конфигуратора.
Как остановить фоновое и регламентное задание
Фоновые задания не имеют окна, поэтому Ctrl+Break до них не дотягивается. Останавливают их по-другому.
Из пользовательского режима
Путь в БП 3.0, ЗУП 3.1, УТ 11: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
- Перейдите на вкладку фоновых заданий.
- Найдите задание в состоянии «Выполняется».
- Выделите его и отмените командой в панели формы.
Отмена — мягкий способ. Задание получит сигнал и остановится на ближайшей точке, откатив свою транзакцию.
Через консоль кластера
Фоновое задание в серверной базе — тоже сеанс, его приложение в консоли помечено как фоновое задание. Его можно удалить так же, как пользовательский сеанс.
Но регламентное задание запустится снова по расписанию. Чтобы этого не случилось на время работ, откройте свойства информационной базы в консоли и включите флажок Блокировка регламентных заданий включена. Снимите его, когда закончите.
Когда задания мешают обновлению
Обновление конфигурации требует монопольного доступа. Задания обмена, загрузки курсов, полнотекстового индекса держат сеансы и не дают его получить. Порядок такой:
Аварийная остановка через Диспетчер задач Windows
Это крайняя мера. Перед завершением любого процесса 1С сделайте резервную копию базы , если это ещё возможно.
Какой процесс за что отвечает
| Процесс | Что это | Последствия снятия |
|---|---|---|
1cv8c.exe | тонкий клиент | закрывается один сеанс на этом компьютере |
1cv8.exe | толстый клиент или Конфигуратор | то же; если шло обновление БД — риск повреждения |
rphost.exe | рабочий процесс сервера | обрываются все сеансы, которые он обслуживал |
rmngr.exe | менеджер кластера | падает работа всего кластера |
ragent.exe | агент сервера (служба) | останавливается сервер 1С целиком |
На своём компьютере снять 1cv8c.exe относительно безопасно в клиент-серверной базе: сервер увидит обрыв соединения и сам откатит транзакцию. Сеанс в консоли может «провисеть» ещё несколько минут, потом кластер его удалит.
В файловой базе всё рискованнее. Клиент пишет прямо в файл 1Cv8.1CD, и обрыв в момент записи может повредить таблицы.
Если пришлось снять rphost
Завершение rphost.exe или перезапуск службы «Агент сервера 1С:Предприятия 8.3» обрывает работу всех пользователей на этом сервере. Делайте это вне рабочего времени или предупредите людей, чтобы они сохранили документы.
Кластер сам поднимет новый рабочий процесс. Пользователи увидят ошибку соединения и смогут переподключиться.
После жёсткой остановки
- 🗂 Файловая база: запустите проверку утилитой
chdbfl.exeиз папкиbinплатформы (база должна быть закрыта всеми) или выполнитеАдминистрирование → Тестирование и исправлениев Конфигураторе. - 🖥 Серверная база: проверьте журнал регистрации за время сбоя. Перепроведите документ, который обрабатывался в момент остановки.
- 🧹 Клиент начал вести себя странно: очистите кэш, запустив 1С с параметром
/ClearCache.
Что делать, чтобы 1С не приходилось останавливать
Большая часть «зависаний» — это блокировки и тяжёлые операции в рабочее время.
- 📅 Тяжёлое — на вечер. Закрытие месяца, перепроведение за квартал, свёртка базы запускайте, когда в базе нет людей.
- 🔒 Ожидание на блокировке. Если операция висит, пока другой пользователь проводит документы по тем же регистрам, это не зависание. Сеанс ждёт. Обычно через 20 секунд по умолчанию 1С выдаёт ошибку блокировки.
- 🧰 Обслуживание СУБД. В клиент-серверной базе настройте регламент: обновление статистики и дефрагментация индексов. Без него запросы со временем замедляются.
- 🧪 Регулярная проверка файловой базы. Раз в месяц тестирование и исправление, раз в день резервная копия.
- ⚙️ Настройки кластера. В свойствах кластера есть ограничения по памяти рабочего процесса и флажок принудительного завершения проблемных процессов. Они защищают сервер от процесса, «съевшего» всю память.
- 🔄 Актуальный релиз. Медленные места в типовых конфигурациях часто исправляют обновлениями. Сравнивайте номер платформы с рекомендованным: он должен быть не ниже указанного в описании релиза конфигурации.
Если зависания повторяются в одной и той же операции, включите технологический журнал на сервере с событиями TLOCK, TTIMEOUT и TDEADLOCK. Он покажет, какой сеанс и на каком объекте держит блокировку.