Почему фоновые задания продолжают запускаться на всех серверах 1С и как правильно настроить требования назначения функциональности

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Анализируем влияние лицензионной политики на работу кластера

Первое, на что мы должны обратить внимание — это различие между лицензиями уровня ПРОФ и КОРП. Платформа 1С накладывает жесткие программные ограничения на использование требований назначения функциональности в зависимости от купленной лицензии. Проанализируем эти ограничения:

  1. Лицензия ПРОФ: Позволяет использовать только общие требования. Мы можем установить правило «Для всех» информационных баз и «Для всех» видов приложений. Как только мы пытаемся указать в колонке «Объект требования» конкретное имя информационной базы или специфический вид фонового задания (например, BackgroundJob.ScheduleJob), система расценивает это как использование функций уровня КОРП.
  2. Лицензия КОРП: Снимает все ограничения. Только с этой лицензией (и на сервер, и на клиентские рабочие места) администратор может гибко распределять задачи конкретных баз по разным рабочим серверам.

Важно помнить исторический контекст: последняя версия платформы, где расширенные требования назначения работали без проверки КОРП-лицензии — это 8.3.12.1685. Начиная с версии 8.3.15 и выше, соблюдение лицензионной чистоты контролируется платформой максимально строго. Если у вас лицензия ПРОФ, а в кластере более 10 сеансов или более 500 соединений, расширенные функции блокируются автоматически.

Разбираем механику работы сервисов заданий

Для корректной настройки нам необходимо четко различать два ключевых сервиса, которые часто путают:

Рассмотрим типичную ошибку: администратор переносит JobService на отдельный сервер, надеясь разгрузить основной рабочий сервер. Однако само выполнение кода (нагрузка на процессор и память) все равно может происходить на старом месте, если туда не перенесен BackgroundJobService или не ограничено выполнение объектов BackgroundJob.

Пошаговая инструкция по настройке требований назначения

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

  1. Откроем консоль администрирования кластера серверов 1С.
  2. Перейдем в раздел «Рабочие серверы» и выберем Server_A.
  3. В контекстном меню выберем «Требования назначения функциональности».
  4. Добавим новое требование:
    • Тип требования: «Не назначать».
    • Объект требования: «Фоновые задания» (или конкретный сервис, если позволяет лицензия).
    • Тип приложения: «Фоновое задание».

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

Выясняем причину резкого роста соединений (эффект DefUser)

Иногда после настройки требований администраторы наблюдают лавинообразный рост соединений от пользователя DefUser с типом «Фоновое задание». Это признак так называемой «информационной петли». Разберем, как это происходит:

Когда мы запрещаем выполнение заданий на всех серверах, кроме одного, но при этом на «разрешенном» сервере возникают ошибки или он перегружен, менеджер кластера пытается найти альтернативу. Если настройки противоречивы (например, запрещен BackgroundJobService, но разрешен JobService для той же базы), система может начать бесконечный цикл попыток запуска процесса. Каждый запуск порождает новое соединение DefUser, которое тут же обрывается или подвисает, забивая ресурсы процессора до 100%.

Чтобы избежать этого, проанализируем настройки на предмет логической связности. Если вы используете лицензию ПРОФ, рекомендуется устанавливать требования только уровня «Для всех», чтобы не провоцировать ошибки лицензирования, которые также ведут к нестабильности соединений.

Примеры настройки требований через программный интерфейс

Хотя чаще всего настройка выполняется через консоль, понимание структур данных помогает лучше осознать логику платформы. Посмотрим, как выглядят параметры требований в контексте системных объектов:


// Пример логики установки требования (псевдокод для понимания структуры)
НовоеТребование = Новый ТребованиеНазначенияФункциональности;
НовоеТребование.ОбъектТребования = "BackgroundJobService";
НовоеТребование.ТипТребования = ТипТребованияНазначенияФункциональности.НеНазначать;
НовоеТребование.ИмяИнформационнойБазы = "Бухгалтерия_ПРОФ"; // Внимание: только для КОРП!

Если в вашей конфигурации используются длительные операции, стоит также обратить внимание на объект РегламентныеЗадания. Ограничение их выполнения должно идти в паре с настройками рабочего сервера.

Практические советы для владельцев лицензий ПРОФ

Что делать, если лицензии КОРП нет, а оптимизировать производительность нужно? Разберем легальные способы:

Подводя итог, отметим: корректная работа требований назначения функциональности в 1С 8.3 — это баланс между техническими настройками консоли и соблюдением лицензионной политики. Всегда проверяйте применение требований через контекстное меню кластера и следите за тем, чтобы JobService и BackgroundJobService не конфликтовали друг с другом в ваших правилах.

← На главную