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