Отчеты и Аналитика · 10 мин
Как остановить выполнение отчета в 1С
Как остановить выполнение отчета в 1С: кнопка остановки, завершение сеанса, снятие фонового задания на сервере. Пошаговые инструкции и частые ошибки.
Долго формирующийся отчет в 1С — типичная ситуация: пользователь запустил построение по большому периоду, программа «зависла», а работу продолжить невозможно. Способ остановки зависит от режима работы: файловая или клиент-серверная база, тонкий клиент или веб-клиент, формируется отчет в интерактивном сеансе или в фоновом задании. В одних случаях достаточно одной кнопки, в других придется завершать сеанс или снимать задание на сервере.
Важно понимать: само по себе прерывание формирования отчета обычно безопасно, потому что отчет не изменяет данные, а только читает их. Риск возникает, когда остановка выполняется грубо — аварийным завершением процесса или перезагрузкой сервера — и затрагивает других пользователей или фоновые операции, которые данные как раз изменяют.
Как понять, чем занята программа, прежде чем что-то останавливать
Прежде чем прерывать выполнение, определите, где именно «крутится» отчет. Если вы сами нажали «Сформировать» и видите окно состояния с индикатором — отчет выполняется в вашем сеансе, и остановить его можете только вы. Если же отчет запущен по расписанию или кнопкой «Сформировать в фоне», он выполняется как фоновое задание на сервере, и ваш клиент при этом может работать нормально.
Второй признак — реакция интерфейса. Если окно 1С не отвечает на клики, а в заголовке появляется «Не отвечает», скорее всего, клиент ждет результат от сервера или СУБД. Это не всегда означает зависание: тяжелый запрос к большой таблице может выполняться десятки минут, и платформа в это время не обновляет окно.
Останавливается кнопкой отмены или Ctrl+Break
Снимайте задание через список фоновых заданий
Проверьте активные запросы на СУБД, не спешите убивать процесс
Отключите расписание и завершите текущее выполнение
Остановка отчета в собственном сеансе
Когда отчет формируется интерактивно, платформа показывает окно состояния. В большинстве конфигураций на управляемых формах в этом окне есть кнопка отмены — нажмите её и дождитесь завершения. Прерывание происходит не мгновенно: платформа останавливает выполнение в ближайшей контрольной точке, поэтому после нажатия может пройти от нескольких секунд до минуты.
Классический способ — сочетание клавиш Ctrl+Break (на части клавиатур Break совмещена с Pause). Эта команда прерывает выполнение встроенного кода и работает как в толстом, так и в тонком клиенте. На ноутбуках без отдельной клавиши Break попробуйте комбинацию с Fn, указанную производителем клавиатуры.
Если кнопки отмены нет и Ctrl+Break не срабатывает
Если отчет построен на запросе, который уже ушел на СУБД, клиентская команда прерывания не поможет: сервер баз данных должен сначала вернуть результат или отменить запрос. В этом случае остается подождать завершения запроса либо попросить администратора СУБД снять конкретный запрос на стороне сервера баз данных. Самостоятельно «убивать» процесс rphost или СУБД не следует — это затронет всех пользователей.
- 1Нажмите кнопку отмены в окне состояния формирования
- 2Если кнопки нет — нажмите Ctrl+Break и подождите до минуты
- 3Если прерывание не сработало — уточните у администратора, не выполняется ли запрос на СУБД
- 4Проверьте, что интерфейс разблокировался и отчет не вывелся частично
- 5При повторном запуске сузьте период или отбор, чтобы отчет не завис снова
Остановка фонового формирования отчета
Если отчет запущен в фоне — кнопкой «Сформировать в фоне» в типовых конфигурациях на базе БСП или через расписание — он выполняется отдельным заданием. Откройте раздел «Администрирование → Поддержка и обслуживание → Регламентные и фоновые задания» (в некоторых конфигурациях — «Регламентные операции»). В списке фоновых заданий найдите нужное по наименованию и времени начала, выделите его и нажмите «Отменить» или «Завершить».
Учтите ограничение: отмена фонового задания из интерфейса тоже не мгновенна и не всегда возможна, если задание находится в длительном вызове сервера или СУБД. Кроме того, для доступа к списку фоновых заданий нужны соответствующие права — у рядового пользователя их обычно нет, и потребуется администратор.
Отчет по расписанию
Если тяжелый отчет запускается регламентным заданием по расписанию и мешает работе регулярно, одного снятия текущего выполнения мало. Откройте свойства регламентного задания и либо отключите его, либо скорректируйте расписание и параметры — например, уменьшите период формирования или перенесите запуск на нерабочие часы.
Остановка через консоль кластера и на стороне СУБД
В клиент-серверном варианте, когда отчет «повис» на сервере и не отменяется штатно, администратор может действовать через консоль администрирования серверов 1С. Откройте ветвь кластера, перейдите в «Сеансы», найдите сеанс пользователя или фонового задания и завершите его. Более точечный вариант — в списке «Соединения» или «Блокировки» определить проблемный процесс.
Если исполнение застряло на уровне СУБД (длинный запрос в MS SQL Server, PostgreSQL), запрос снимают средствами самой СУБД: например, в MS SQL Server через Activity Monitor или командой KILL по идентификатору сессии. Это работа администратора баз данных: ошибочное завершение чужой сессии оборвет операции других пользователей.
Что делать в файловой базе и в веб-клиенте
В файловом варианте сервера нет, и отчет выполняется в вашем процессе. Здесь работают кнопка отмены и Ctrl+Break. Если программа полностью не отвечает и прерывание недоступно, единственный выход — завершить процесс 1cv8 через диспетчер задач. Для данных это обычно безопасно при чтении, но перед повторным запуском убедитесь, что база открывается нормально и не требует восстановления.
В веб-клиенте возможности прерывания ограничены: закрытие вкладки браузера не останавливает выполнение на сервере — задание продолжит работать до завершения или тайм-аута. Поэтому в веб-клиенте корректный путь — кнопка отмены в окне состояния, а если её нет, обращение к администратору для снятия сеанса или фонового задания.
Как выбрать действие
Проверка результата и профилактика повторных зависаний
После остановки убедитесь, что выполнение действительно прекращено: окно состояния исчезло, интерфейс реагирует, в списке фоновых заданий нужное задание в состоянии «Отменено» или отсутствует. Если отчет успел частично вывестись, не используйте такой фрагмент для анализа — данные в нем неполные.
Чтобы ситуация не повторялась, разберитесь с причиной долгого выполнения. Чаще всего помогают: сужение периода и отборов, отключение итогов по измерениям, которые не нужны, перенос тяжелых отчетов на фоновое выполнение в нерабочее время, обновление статистики и обслуживание индексов на СУБД. Если отчет собственной разработки — стоит проанализировать его запрос и убрать соединения с виртуальными таблицами без отборов.
Что важно запомнить
Интерактивный отчет останавливается кнопкой отмены или Ctrl+Break, фоновый — снятием задания в списке регламентных и фоновых заданий. Зависший сеанс завершает администратор через консоль кластера, а запрос на СУБД — администратор баз данных. Процессы сервера 1С самостоятельно не завершайте. После остановки найдите причину долгого выполнения, иначе отчет зависнет снова.
Частые вопросы
Опасно ли прерывать формирование отчета для базы данных?
Нет. Отчет только читает данные и ничего не записывает, поэтому его отмена не нарушает целостность базы. Опасно грубое прерывание на уровне сервера, которое задевает другие сеансы, где данные как раз изменяются.
Почему после нажатия отмены отчет продолжает формироваться еще некоторое время?
Платформа прерывает выполнение не мгновенно, а в ближайшей точке, где это возможно. Если в момент отмены выполняется запрос на СУБД, придется ждать его завершения или отмены на стороне сервера баз данных.
Закрыл программу, а отчет все равно грузит сервер. Почему?
В клиент-серверном режиме завершение клиента не всегда сразу снимает работу на сервере: сеанс и фоновое задание могут продолжать выполняться. Их завершает администратор через консоль кластера или список фоновых заданий.
Нет кнопки отмены и Ctrl+Break не работает. Что еще можно сделать?
Проверьте, не выполняется ли запрос на СУБД — тогда клиентская отмена бессильна. В файловой базе крайняя мера — завершение процесса 1cv8 через диспетчер задач; в клиент-серверной — обращение к администратору для завершения сеанса.
Как узнать, кто запустил тяжелый отчет, который тормозит всю базу?
Администратор может посмотреть активные сеансы и соединения в консоли кластера 1С, а также длительные запросы средствами СУБД. В типовых конфигурациях список активных фоновых заданий показывает пользователя и время запуска.
Можно ли ограничить время выполнения отчетов, чтобы они не зависали?
Штатного универсального тайм-аута для интерактивных отчетов нет. На практике применяют перевод тяжелых отчетов в фоновое выполнение, ограничения на уровне СУБД (например, тайм-ауты запросов) и доработку самих отчетов — отборы, период, оптимизацию запроса.