К статье
Практический материал

Администрирование · 10 мин

Как в 1С остановить запущенный процесс

Как остановить запущенный процесс в 1С: отмена фоновых заданий, завершение сеансов в консоли кластера, остановка регламентных заданий и обменов данными без потери информации.

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

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

Ниже разобраны практические способы остановки: через интерфейс программы, через консоль кластера серверов, через диспетчер задач и программно. Для каждого способа указаны условия применения, риски и способы проверить результат.

Как определить, какой процесс нужно остановить

Прежде чем что-то завершать, выясните, что именно выполняется. В типовых конфигурациях на БСП список активных фоновых заданий находится в разделе «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания» (в некоторых конфигурациях — «Регламентные операции»). Там видно наименование задания, состояние, время начала и выполняющий его сеанс.

Если пользователь жалуется, что «1С зависла», уточните симптомы: крутится индикатор ожидания, форма не отвечает, или программа закрылась с ошибкой. Индикатор ожидания при активном фоновом задании — это нормальная работа длительной операции. Полное отсутствие реакции формы более 15–30 минут при простой операции — повод проверить состояние сеанса на сервере.

Крутится индикатор ожиданияИдёт длительная операция

Проверьте список фоновых заданий — если задание активно и время растёт, оно работает

Форма не отвечает совсемВозможна блокировка или зависание сеанса

Посмотрите сеансы в консоли кластера: время вызова СУБД и блокировки

Задание в статусе «Выполняется» часамиВероятно зависшее фоновое задание

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

Процесс rphost грузит CPUСерверный вызов активно работает

Определите сеанс по консоли кластера, не снимайте процесс ОС сразу

Остановка фонового задания через интерфейс 1С

Самый безопасный способ — отмена фонового задания штатными средствами. Откройте «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания», найдите нужное задание в списке, выделите его и нажмите «Отменить» (в ряде конфигураций — «Завершить» или команда в меню «Ещё»). Платформа посылает заданию сигнал отмены.

Важно понимать: отмена не мгновенная. Код внутри задания должен периодически проверять запрос на отмену — если разработчик этого не предусмотрел, задание завершится только после окончания текущего серверного вызова. Для длительных операций на базе БСП проверка обычно встроена, и отмена срабатывает в течение секунд или минут.

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

Если после отмены задание продолжает висеть в статусе «Выполняется» более 10–15 минут, значит, серверный вызов не проверяет флаг отмены. В этом случае переходите к завершению сеанса через консоль кластера — это следующий уровень воздействия.

Завершение сеанса через консоль кластера серверов

Консоль кластера (оснастка «Администрирование серверов 1С:Предприятия») позволяет видеть все сеансы информационной базы и принудительно их завершать. Откройте консоль, разверните нужный кластер, выберите информационную базу и перейдите на вкладку «Сеансы». Здесь видно пользователя, время начала, длительность текущего вызова СУБД и объём прочитанных данных.

Найдите проблемный сеанс — обычно это сеанс с типом «Фоновое задание» или сеанс пользователя с аномально долгим текущим вызовом. Нажмите правой кнопкой и выберите «Удалить» либо используйте кнопку завершения сеанса. Сеанс будет принудительно закрыт, а выполнявшееся в нём задание завершится с ошибкой.

Если в кластере несколько рабочих процессов (rphost), зависший сеанс можно найти по колонке «Рабочий процесс». В тяжёлых случаях, когда сеанс не удаляется, помогает перезапуск конкретного рабочего процесса — но это затронет все сеансы, обслуживаемые этим процессом, поэтому применяйте такой шаг только при неработающих остальных методах и предупредив пользователей.

Остановка процесса в файловой базе и через диспетчер задач

В файловом варианте 1С нет консоли кластера, и фоновые задания выполняются внутри клиентского процесса. Если программа зависла, откройте диспетчер задач Windows (Ctrl+Shift+Esc), найдите процесс 1cv8.exe или 1cv8c.exe, выделите его и нажмите «Снять задачу».

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

cmd
tasklist | findstr 1cv8
taskkill /PID <номер_процесса> /F

Снимать процесс сервера 1С (rphost.exe, ragent.exe) через диспетчер задач — крайняя мера. Это эквивалентно аварийной остановке части кластера и затрагивает всех пользователей, чьи сеансы обслуживал этот процесс. Сначала всегда пробуйте завершить конкретный сеанс через консоль кластера.

Остановка регламентных заданий и обменов данными

Регламентное задание отличается от фонового: оно запускается по расписанию и порождает фоновые задания при каждом срабатывании. Чтобы остановить текущее выполнение, отмените порождённое фоновое задание. Чтобы задание не запускалось снова, откройте список регламентных заданий, найдите нужное и снимите флаг «Использование» или нажмите «Отключить».

Обмены данными (синхронизация с другой базой, выгрузка на сайт) останавливаются либо кнопкой отмены в форме обмена, либо через отмену соответствующего фонового задания. Прерванный обмен обычно корректно возобновляется с места остановки при следующем запуске, но проверьте журнал регистрации и состояние узлов обмена: не зарегистрированы ли ошибки и не остались ли «зависшие» сообщения обмена.

Программная остановка и типичные ошибки

Для администраторов и разработчиков доступен программный способ: методы ФоновыеЗадания.ПолучитьФоновыеЗадания() и Отменить() у найденного объекта задания. Это удобно для автоматизации — например, отмены всех заданий конкретного метода. Для сеансов кластера используется COM-коннектор V83.COMConnector и метод TerminateSession.

Типичные ошибки
01
Отмена задания через 30 секунд после запуска — операция просто не успела выполниться, повторный запуск создаёт дублирующую нагрузку
02
Снятие rphost.exe вместо завершения конкретного сеанса — аварийно обрываются сеансы десятков пользователей
03
Отключение регламентного задания без возврата — через месяц обнаруживается, что не выполнялся обмен или расчёт итогов
04
Повторный запуск обмена сразу после принудительной остановки без проверки журнала — конфликт с незавершённым сообщением обмена

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

Как проверить, что процесс действительно остановлен

Контрольные точки

Как проверить результат

Список фоновых заданий
Норма

Задание отсутствует или в состоянии «Отменено»

Тревожный признак

Задание снова «Выполняется» — отмена не сработала

Сеансы в консоли кластера
Норма

Проблемный сеанс исчез из списка

Тревожный признак

Сеанс висит с растущим временем вызова СУБД

Нагрузка на сервер (CPU, диски)
Норма

Вернулась к обычному уровню

Тревожный признак

rphost продолжает потреблять ресурсы — завис другой сеанс

Журнал регистрации
Норма

Запись об отмене или ошибке задания

Тревожный признак

Задание стартует снова по расписанию — отключите регламентное задание

После остановки обязательно проверьте целостность данных, которые обрабатывал процесс. Для обменов — журнал синхронизации и наличие ошибок, для проведения документов — контроль остатков, для расчётов — повторный запуск операции в контролируемом режиме. Если процесс прерывался во время записи, запустите тестирование и исправление базы (для файловой) или средства проверки СУБД (для серверной) — при подозрении на повреждения.

Итог

Что важно запомнить

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

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

Почему фоновое задание не отменяется кнопкой «Отменить»?

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

Что будет с данными, если принудительно завершить сеанс?

Незавершённая транзакция откатится СУБД, поэтому база не останется в полузаписанном состоянии на уровне отдельной транзакции. Но бизнес-операция (обмен, пакетная обработка) может остаться выполненной частично — проверьте журналы и при необходимости повторите операцию.

Как остановить процесс, если нет доступа к консоли кластера?

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

Можно ли остановить обновление конфигурации базы данных?

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

Как запретить запуск зависающего задания в будущем?

Отключите соответствующее регламентное задание (снимите флаг «Использование») и разберитесь с причиной зависания: блокировки, большой объём данных, ошибки в коде. После устранения причины включите задание обратно и проконтролируйте несколько запусков.