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