При разворачивании тестовых баз, создании копий рабочих баз или развертывании новых информационных комплексов разработчики и системные администраторы часто сталкиваются с риском несанкционированного выполнения фоновых процессов. Если скопировать рабочую базу на тестовый контур без блокировки задания, оно может автоматически выполнить обмен с сайтом, выгрузить лишние данные или отправить уведомления пользователям. По этой причине часто возникает необходимость отключать регламентные и фоновые задания по умолчанию при создании новых информационных баз на сервере 1С.
Рассмотри подробно варианты решения этой задачи — от настройки параметров кластера до использования скриптов командной строки и встроенных механизмов БСП.
При создании базы через стандартное окно запуска платформы (стартер) платформа по умолчанию создает базу с активными регламентными заданиями. Однако если регистрировать информационную базу через консоль администрирования кластера серверов, флаг блокировки можно установить на этапе создания.
Разберем порядок действий:
ScheduledJobsDenied).При таком подходе фоновые процессы будут заблокированы с момента первого запуска базы.
Чтобы избежать выполнения ручных операций в консоли, разберем вариант использования утилиты администрирования rac (Remote Administration Client). При скриптовом создании базы с помощью утилиты командной строки можно сразу передать параметр отключения фоновых заданий.
Посмотрим на пример команды создания базы с блокировкой регламентных заданий:
rac infobase create --cluster=<ID_кластера> --name="TestBase" --dbms=MSSQLServer --db-server=SQL_SERVER --db-name="TestBaseDB" --db-user="sa" --db-pwd="password" --scheduled-jobs-deny=on
Ключ --scheduled-jobs-deny=on принудительно включает блокировку выполнения регламентных заданий при регистрации информационной базы в кластере.
Если база уже создана, но необходимо заблокировать фоновые процессы через консольную утилиту, примените команду обновления параметров базы:
rac infobase update --cluster=<ID_кластера> --infobase=<ID_базы> --scheduled-jobs-deny=on
В современных конфигурациях 1С, использующих Библиотеку Стандартных Подсистем (БСП), встроен механизм контроля перемещения и копирования информационных баз.
Выясним, как работает этот алгоритм:
Обратите внимание: данная защита работает только на уровне кода конфигураций с БСП. В нетиповых конфигурациях или старых релизах этот функционал может отсутствовать, поэтому рассчитывать на него как на единственный рубеж защиты на сервере не рекомендуется.
Проанализируем ситуацию, когда необходимо полностью запретить запуск регламентных заданий на отдельном сервере 1С в составе кластера, независимо от индивидуальных настроек каждой отдельной базы.
Для этого разберем настройку Правил назначения требований:
При использовании ПНТ фоновые задания не будут запускаться ни в одной базе, работающей на данном рабочем сервере.
При использовании скриптов автоматизации (OneScript, PowerShell или VBScript) управление параметрами баз в кластере выполняется через объект V83.COMConnector.
Рассмотрим пример кода на OneScript, который подключается к кластеру и включает параметр ScheduledJobsDenied для нужной информационной базы:
Connector = Новый COMОбъект("V83.COMConnector");
Agent = Connector.ConnectAgent("Server1C");
Clusters = Agent.GetClusters();
Cluster = Clusters[0];
Agent.Authenticate(Cluster, "", "");
Bases = Agent.GetInfoBases(Cluster);
Для Каждого Base Из Bases Цикл
Если Base.Name = "TestBase" Тогда
Base.ScheduledJobsDenied = Истина;
Agent.UpdateInfoBase(Cluster, Base);
КонецЕсли;
КонецЦикла;
Использование скриптов позволяет полностью автоматизировать администрирование баз данных и гарантировать отключение регламентных заданий при любом способе развертывания.