Администрирование · 10 мин
Как прервать выполнение операции в 1С
Как прервать выполнение операции в 1С: остановка фоновых заданий, завершение зависших сеансов, отмена длительных операций в клиент-серверном и файловом режиме.
Фраза «прервать, что делает 1С» обычно означает одну из трёх ситуаций: программа зависла при проведении документа или формировании отчёта, фоновое задание выполняется слишком долго и блокирует работу, либо сеанс пользователя «завис» и мешает другим. Способ прерывания зависит от режима работы базы — файловый или клиент-серверный — и от того, что именно выполняется: интерактивная операция, фоновое задание или регламентное задание по расписанию.
Главное правило: сначала нужно понять, чем именно занята 1С, и только потом выбирать способ остановки. Грубое завершение процесса через диспетчер задач — крайняя мера, которая в клиент-серверном режиме обычно безопасна благодаря транзакционности СУБД, а вот в файловом режиме может привести к повреждению базы и необходимости восстановления через тестирование и исправление.
Определяем, что именно делает 1С
Прежде чем что-то прерывать, установите тип выполняемой работы. Если на экране крутится индикатор «Выполняется...» при проведении документа или построении отчёта — это интерактивная операция в вашем сеансе. Если в заголовке окна нет реакции, но база работает у других пользователей медленно — вероятно, выполняется фоновое или регламентное задание. Если пользователь не может войти в базу из-за «зависшего» сеанса — проблема в незавершённом соединении.
Для диагностики полезны: список активных пользователей (в файловом режиме — «Администрирование → Обслуживание → Активные пользователи», в типовых конфигурациях на БСП), консоль кластера серверов 1С для клиент-серверного режима и журнал регистрации, где видно, какие фоновые задания запущены и как давно.
Попробуйте кнопку «Отмена» или Ctrl+Break
Проверьте список фоновых заданий и консоль кластера
Завершите сеанс через консоль кластера или список активных пользователей
Подождите несколько минут, затем решайте о снятии процесса
Прерывание длительной интерактивной операции
Многие длительные операции в типовых конфигурациях (формирование отчётов, групповое проведение, обмены данными) построены на механизме длительных операций БСП и имеют кнопку «Отмена» в окне индикатора. Это самый безопасный способ: код операции проверяет признак отмены и завершается корректно, откатывая незавершённую транзакцию.
Если окно не отвечает, попробуйте комбинацию Ctrl+Break — в ряде случаев она прерывает выполнение встроенного кода. В толстом клиенте и конфигураторе это срабатывает чаще, в тонком клиенте — реже, поскольку основная нагрузка уходит на сервер. Если операция выполняется на сервере (клиент-серверный режим), прерывание на клиенте может не остановить серверный вызов немедленно — сервер завершит текущий вызов и вернёт управление.
Важно понимать: если прервать операцию проведения документа посередине, транзакция откатится, и данные останутся в исходном состоянии. Это штатное поведение платформы. Опасны не сами прерывания, а снятие процесса в момент записи в файловую базу.
- 1Нажмите кнопку «Отмена» в окне индикатора, если она есть
- 2Если кнопки нет — нажмите Ctrl+Break и подождите до минуты
- 3Если окно не отвечает — проверьте, не выполняется ли операция на сервере
- 4Только после этого рассматривайте завершение сеанса целиком
- 5После прерывания проверьте состояние данных: проведён ли документ, сформирован ли отчёт
Остановка фоновых и регламентных заданий
Фоновые задания — это операции, запущенные программно без участия пользователя: обмены, расчёты, загрузка данных. Регламентные задания выполняются по расписанию. Посмотреть и отменить их можно несколькими способами. В типовых конфигурациях на базе БСП есть обработка «Регламентные и фоновые задания» (раздел «Администрирование → Обслуживание»), где активное задание можно отменить кнопкой.
Программная отмена задания
Разработчик или администратор с доступом к внешней обработке может отменить задание кодом. Для этого нужно знать уникальный идентификатор задания, который виден в консоли заданий или получается методом ФоновыеЗадания.ПолучитьФоновыеЗадания() с отбором по состоянию «Активно».
АктивныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(
Новый Структура("Состояние", СостояниеФоновогоЗадания.Активно));
Для Каждого Задание Из АктивныеЗадания Цикл
ФоновыеЗадания.ОтменитьВыполнениеЗадания(Задание.УникальныйИдентификатор);
КонецЦикла;Метод ОтменитьВыполнениеЗадания() не убивает задание мгновенно: платформа сигнализирует о необходимости завершения, и код задания должен это обработать. Если задание «висит» в бесконечном цикле без проверок, отмена может занять время или не сработать — тогда остаётся завершение сеанса, в котором оно выполняется.
Задание запускается снова
Если отменённое регламентное задание тут же стартует заново, причина в расписании или в том, что задание перезапускается после ошибки. Временно отключите регламентное задание в консоли заданий (снимите признак «Использование»), разберитесь с причиной и только потом включайте обратно. В клиент-серверном режиме также проверьте, не блокировано ли выполнение регламентных заданий на уровне информационной базы в консоли кластера.
Завершение зависшего сеанса пользователя
В клиент-серверном режиме сеансы завершаются через консоль кластера серверов 1С. Откройте консоль, найдите нужный кластер, перейдите в раздел «Сеансы», найдите сеанс по пользователю или компьютеру и удалите его через контекстное меню. Это корректный способ: сервер завершит соединение и освободит ресурсы.
В файловом режиме зависший сеанс виден в списке активных пользователей. Если пользователь фактически вышел, а сеанс висит, его можно удалить из списка. В типовых конфигурациях также есть настройка завершения сеансов по расписанию и принудительного завершения при блокировке базы для обновления.
Признак настоящего зависания, а не долгой работы: процесс не потребляет ресурсы процессора и диска, в журнале регистрации нет новых событий длительное время, сетевые соединения сеанса неактивны. Если процессор загружен — скорее всего, работа идёт, и стоит подождать.
Крайняя мера: завершение процесса 1С
Если ничего не помогло, процесс клиентского приложения (1cv8.exe или 1cv8c.exe) можно снять через диспетчер задач Windows: вкладка «Процессы» или «Подробности», выбрать процесс, «Снять задачу». В клиент-серверном режиме это обычно безопасно для данных: незавершённая транзакция откатится на стороне СУБД. Сеанс на сервере освободится автоматически через некоторое время или после завершения в консоли кластера.
В файловом режиме снятие процесса во время записи может оставить базу в неконсистентном состоянии. После такого завершения рекомендуется запустить утилиту chdbfl.exe из каталога платформы и проверить физическую целостность файла базы, а затем при необходимости выполнить тестирование и исправление в конфигураторе. Перед этим обязательно сделайте копию файла 1Cv8.1CD.
Проверка результата после прерывания
После любого прерывания убедитесь, что база в рабочем состоянии. Проверьте журнал регистрации на наличие ошибок в момент завершения, убедитесь, что зависший сеанс исчез из списка активных, а фоновое задание перешло в состояние «Отменено» или «Завершено аварийно». Если прерывалась операция проведения — откройте документ и проверьте его состояние.
Как проверить результат
Зависший сеанс отсутствует
Сеанс висит — завершите его повторно через консоль кластера
Есть запись о завершении или отмене задания
Ошибки СУБД или записи об аварийном завершении повторяются
«Отменено» или «Завершено»
Задание снова активно — проверьте расписание
Документ в исходном состоянии, отчёт можно переформировать
Документ частично записан, движения некорректны — нужен анализ
Частые вопросы
Что делать, если кнопка «Отмена» не реагирует?
Подождите несколько минут: серверный вызов может завершиться сам, и управление вернётся клиенту. Если окно не отвечает дольше 10–15 минут и процесс не нагружает систему, завершайте сеанс через консоль кластера или список активных пользователей, а не через диспетчер задач.
Можно ли прервать обновление конфигурации базы данных?
Категорически не рекомендуется. Реструктуризация таблиц в момент прерывания может оставить базу в нерабочем состоянии, особенно в файловом режиме. Дождитесь завершения, а если обновление явно зависло — восстанавливайтесь из резервной копии, которая должна создаваться перед каждым обновлением.
Как узнать, какое фоновое задание тормозит базу?
Откройте консоль регламентных и фоновых заданий и отсортируйте по состоянию «Активно». В клиент-серверном режиме дополнительно посмотрите консоль кластера: там видно, какой рабочий процесс и сеанс обслуживает задание и сколько ресурсов оно потребляет.
Опасно ли завершать сеанс другого пользователя?
Само по себе завершение сеанса безопасно для базы, но пользователь потеряет несохранённые данные в открытых формах. По возможности предупредите его. Если сеанс завис и пользователь уже вышел, завершение — правильное действие.
Что делать после аварийного завершения файловой базы?
Сделайте копию файла 1Cv8.1CD, затем запустите утилиту chdbfl.exe из каталога установки платформы и выполните проверку физической целостности с исправлением ошибок. После этого при необходимости выполните тестирование и исправление в конфигураторе в режиме проверки логической целостности.
Что важно запомнить
Сначала определите тип выполняемой работы, затем выбирайте способ: «Отмена» или Ctrl+Break для интерактивных операций, консоль заданий и ОтменитьВыполнениеЗадания() для фоновых, консоль кластера или список активных пользователей для зависших сеансов. Диспетчер задач — только крайняя мера, а в файловом режиме после него обязательна проверка целостности базы. Перед любыми восстановительными действиями делайте резервную копию.