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

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

Где посмотреть фоновые задания в 1С

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

Фоновые задания в 1С — это процессы, которые платформа выполняет асинхронно: без блокировки интерфейса пользователя и часто без его участия. Через них работают обмены данными, загрузка курсов валют, расчёт итогов, отправка отчётности, полнотекстовое индексирование и множество других механизмов. Когда обмен «завис», а отчётность не отправилась, первый вопрос администратора — где посмотреть, что происходит с фоновыми заданиями.

Инструментов для просмотра несколько, и выбор зависит от режима работы базы (файловая или клиент-серверная), версии платформы и того, есть ли у вас доступ к конфигуратору. Встроенная «Консоль заданий» показывает список заданий и их состояние, журнал регистрации — историю ошибок, а программный интерфейс позволяет найти задание из кода или внешней обработки.

Что такое фоновое задание и чем оно отличается от регламентного

Фоновое задание — это экземпляр асинхронного выполнения процедуры общего модуля. Оно запускается либо программно (метод ФоновыеЗадания.Выполнить), либо автоматически по расписанию. У каждого экземпляра есть уникальный идентификатор, состояние (Активно, Завершено, ЗавершеноАварийно, Отменено), время начала и окончания.

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

Консоль заданий в конфигураторе

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

В списке видны наименование задания, состояние, дата и время начала и окончания, а также связанное регламентное задание. Двойной щелчок по строке открывает карточку задания с подробностями, включая текст ошибки, если задание завершилось аварийно. Отсюда же можно отменить активное задание — кнопка «Отменить» доступна для заданий в состоянии «Активно».

Учтите ограничение: консоль заданий в конфигураторе требует административных прав и монопольного доступа не требует, но в файловой базе некоторые операции (например, изменение расписания) могут быть недоступны при активных сеансах пользователей.

Как открыть консоль заданий в конфигураторе
  1. 1
    Запустите конфигуратор нужной информационной базы
  2. 2
    Откройте меню Администрирование → Обслуживание → Консоль заданий
  3. 3
    Перейдите на вкладку «Фоновые задания»
  4. 4
    Отфильтруйте список по состоянию или периоду при необходимости
  5. 5
    Дважды щёлкните по заданию, чтобы увидеть детали и текст ошибки

Просмотр заданий в режиме 1С:Предприятие

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

Через этот интерфейс удобно работать без конфигуратора: можно включить или отключить регламентное задание, изменить расписание, принудительно запустить выполнение и посмотреть ошибку последнего запуска. Права на раздел обычно есть у ролей «Администратор системы» или «Настройка и администрирование» — у рядового пользователя пункт меню будет скрыт.

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

Журнал регистрации: история и ошибки заданий

Консоль заданий показывает текущее состояние, но история запусков в ней ограничена. Полную картину даёт журнал регистрации: Администрирование → Обслуживание → Журнал регистрации в конфигураторе. Отфильтруйте события по наименованию «Фоновое задание» — увидите все запуски, завершения и аварийные остановки за выбранный период.

Для поиска причины сбоя установите отбор по уровню «Ошибка» и по имени регламентного задания. В деталях события будет текст исключения и, как правило, имя процедуры, в которой произошёл сбой. Это основной способ разобраться, почему задание «отработало, но результата нет» — часто оно падает с ошибкой, а пользователи об этом не узнают.

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

Когда заданий много или нужна автоматизация, удобнее получить список кодом. Метод ФоновыеЗадания.ПолучитьФоновыеЗадания() принимает структуру отбора и возвращает массив объектов с полной информацией. Этот же подход используют внешние обработки-консоли заданий, которые часто применяют в старых или нетиповых конфигурациях, где стандартного раздела администрирования нет.

bsl
Отбор = Новый Структура;
Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Для Каждого Задание Из Задания Цикл
    Сообщить(Задание.Наименование + " | " + Задание.УникальныйИдентификатор);
КонецЦикла;

В отборе доступны поля: уникальный идентификатор, состояние, наименование, имя метода, регламентное задание, дата начала и окончания. Найденное задание можно отменить методом Отменить() или дождаться завершения через ОжидатьЗавершения(). Для поиска заданий конкретного регламентного задания передайте в отбор ссылку на объект РегламентныеЗадания.НайтиПоУникальномуИдентификатору(...) или само предопределённое регламентное задание из метаданных.

Как понять, что задание зависло, а не работает

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

В клиент-серверном варианте дополнительно смотрите консоль кластера: у работающего задания сеанс потребляет процессорное время и память растёт или меняется; у зависшего взаимоблокировки показатели стоят на месте, а в списке соединений видны ожидания на блокировках СУБД. В файловой базе признак блокировки — ошибки «Конфликт блокировок» у пользователей, пытающихся работать с теми же данными.

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

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

Состояние задания в консоли
Норма

«Завершено» после ожидаемого времени работы

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

«ЗавершеноАварийно» или бесконечное «Активно»

Журнал регистрации за период запуска
Норма

Записи о работе задания, нет ошибок

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

События с уровнем «Ошибка» по этому заданию

Прикладной результат
Норма

Данные обновлены: курсы загружены, обмен выполнен

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

Данные не изменились, хотя задание «успешно» завершено

Типичные проблемы и их причины

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

Вторая — задание падает сразу после старта: причина в тексте ошибки в карточке задания или журнале регистрации, типичны нехватка прав у пользователя, от имени которого выполняется задание, и ошибки в коде после обновления конфигурации. Третья — дубли запусков: одно и то же задание выполняется параллельно в нескольких экземплярах, что вызывает конфликты блокировок; лечится проверкой ключа задания и настройкой расписания. Четвёртая — задание выполняется, но медленно: здесь уже нужен анализ кода и запросов, консоль заданий лишь фиксирует симптом.

Типичные ошибки
01
Искать ошибку в списке регламентных заданий вместо фоновых — там только расписание, а текст сбоя хранится у конкретного запуска и в журнале регистрации
02
Отменять активное задание обмена без проверки — риск получить рассинхронизацию данных между базами
03
Забыть снять блокировку регламентных заданий после восстановления копии базы — задания молча не выполняются
04
Запускать тяжёлое задание вручную в рабочее время — оно конкурирует за ресурсы с пользователями

Часто задаваемые вопросы

Почему в консоли заданий пусто, хотя регламентные задания настроены?

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

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

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

Как найти, кто или что запустило конкретное фоновое задание?

В карточке фонового задания указано связанное регламентное задание — если оно есть, запуск был по расписанию. Если поле пустое, задание запущено программно из пользовательского сеанса: тогда ищите в журнале регистрации события сеансов в момент старта задания и анализируйте код, где вызывается ФоновыеЗадания.Выполнить с таким наименованием.

Можно ли посмотреть, что делает задание прямо сейчас?

Платформа не показывает выполняемую в данный момент строку кода в консоли заданий. В клиент-серверном варианте можно подключить отладку к процессу сервера (предмет отладки — фоновые задания) и остановиться в нужной процедуре. Косвенно ход работы виден в журнале регистрации и по записям технологического журнала.

Задание завершилось аварийно, но текста ошибки нет. Где искать причину?

Откройте журнал регистрации с отбором по событию «Фоновое задание» и уровню «Ошибка» за время запуска — текст исключения обычно там. Если и этого мало, включите технологический журнал с событиями EXCP и TDEADLOCK на сервере: он фиксирует исключения и взаимоблокировки, которые не всегда попадают в журнал регистрации с нужной детализацией.

Итог

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

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