Запрет регламентных и фоновых заданий в базе 1С 8.3: консоль кластера, Конфигуратор, rac

· 10 мин

Содержание

В клиент-серверной базе 1С 8.3 все регламентные задания блокируются одним флажком: откройте консоль администрирования серверов 1С, свойства нужной информационной базы и включите Блокировка регламентных заданий включена. В файловой базе такого флажка нет — там задания запускает клиентский сеанс, и его отключают параметром запуска /AllowExecuteScheduledJobs -Off.

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

Как устроены регламентные и фоновые задания в платформе 1С

Прежде чем что-то блокировать, разведите два понятия. От этого зависит, какой способ вам нужен.

  • ⏰ Регламентное задание — объект конфигурации с расписанием. Платформа сама запускает его по графику: загрузка курсов валют, обмен с ЭДО, полнотекстовый индекс, обмен с сайтом.
  • ⚙️ Фоновое задание — разовый процесс на сервере. Его порождает регламентное задание по расписанию или код конфигурации, когда пользователь жмёт кнопку: проведение по партиям, формирование тяжёлого отчёта, закрытие месяца .

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

Где они выполняются:

Вариант базыКто выполняет заданияЧем блокировать
Клиент-сервернаяРабочие процессы rphost сервера 1СФлажок в свойствах базы, команда rac
ФайловаяОдин из клиентских сеансов (тонкий или толстый клиент)Параметр запуска /AllowExecuteScheduledJobs -Off
Файловая, опубликованная на веб-сервереСеанс веб-клиента или клиента через публикациюЗапуск без выполнения заданий, отключение отдельных заданий в программе

Блокировать задания чаще всего нужно в трёх случаях: развернули копию рабочей базы для теста, идёт обновление или закрытие месяца, одно задание «висит» и грузит сервер.

Что подготовить: доступы и права

Набор доступов зависит от выбранного способа. Проверьте их заранее, чтобы не застрять на середине.

  1. Администратор кластера. Если на кластере заданы администраторы, консоль попросит логин и пароль при подключении. Без них свойства базы не откроются.
  2. Администратор информационной базы. При открытии свойств базы консоль спрашивает имя и пароль пользователя 1С с административными правами. Если пользователей в базе нет, поля оставляют пустыми.
  3. Консоль администрирования. Оснастка ставится вместе с платформой как компонент «Администрирование сервера 1С:Предприятия». Если консоль не открывается или пустая — перерегистрируйте radmin.dll той же версии, что и сервер.
  4. Служба RAS — только для командной строки. Утилита rac общается с сервером не напрямую, а через сервер администрирования ras (по умолчанию порт 1545).

Регистрация radmin.dll из командной строки, запущенной от имени администратора (путь подставьте под свою версию):

regsvr32 "C:\Program Files\1cv8\8.3.24.1586\bin\radmin.dll"

Запуск сервера администрирования в фоне на той же машине, где работает агент сервера:

"C:\Program Files\1cv8\8.3.24.1586\bin\ras.exe" cluster --daemon localhost:1540

Версия radmin.dll, ras и rac должна совпадать с версией сервера 1С. Консоль от 8.3.22 к серверу 8.3.24 обычно не подключается или показывает ошибку версии.

Блокировка регламентных заданий в свойствах информационной базы

Это основной и самый надёжный способ. Он запрещает автоматический запуск всех регламентных заданий базы, пока флажок стоит.

Пошагово в консоли кластера

  1. Откройте Администрирование серверов 1С Предприятия и разверните: центральный сервер → Кластеры → ваш кластер → Информационные базы.
  2. Щёлкните правой кнопкой по базе → Свойства.
  3. Введите имя и пароль администратора базы.
  4. Включите флажок Блокировка регламентных заданий включена.
  5. Нажмите ОК. Новые запуски по расписанию прекращаются сразу.

Уже запущенное задание флажок не прерывает: оно доработает до конца. Как остановить его принудительно — в разделе про активные процессы ниже.

Блокировка при создании базы

Если вы разворачиваете копию рабочей базы, ставьте блокировку ещё до загрузки данных. В окне создания новой базы в консоли есть флажок Установить блокировку регламентных заданий. Включите его, создайте пустую базу, затем загрузите в неё .dt через Конфигуратор.

Копия рабочей базы без блокировки заданий начнёт отправлять документы в ЭДО, выгружать заказы на сайт и обмениваться с другими базами от имени настоящей организации. Это главный риск тестовых копий.

Блокировка начала сеансов

В той же форме свойств есть вторая группа настроек — Блокировка начала сеансов включена. Она не про задания, а про пользователей, но их часто ставят вместе на время регламентных работ:

  • 🕐 Начало и конец — интервал, когда вход запрещён.
  • 💬 Сообщение — текст, который увидит пользователь при попытке входа.
  • 🔑 Код разрешения — пароль, с которым администратор всё же войдёт. Его передают параметром запуска /UC<код>.

Блокировка начала сеансов не завершает тех, кто уже работает, и не останавливает фоновые задания. Это только запрет новых входов.

Точечное отключение заданий в режиме 1С:Предприятие и в Конфигураторе

Иногда блокировать всё нельзя: курсы валют должны грузиться, а сломанный обмен — нет. Тогда отключают одно задание.

В типовых конфигурациях на БСП

В БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на Библиотеке стандартных подсистем есть готовый список:

КонфигурацияГде список заданий
Бухгалтерия предприятия 3.0Администрирование → Обслуживание → Регламентные и фоновые задания
ЗУП 3.1Администрирование → Обслуживание → Регламентные и фоновые задания
Управление торговлей 11Раздел НСИ и администрирование, группа «Обслуживание» → Регламентные и фоновые задания

В списке откройте нужное задание и снимите флажок Включено. Там же видно расписание, дату последнего запуска и результат — это первое место, куда смотреть при «зависшем» задании.

Если база скопирована, БСП сама замечает смену адреса и предлагает заблокировать работу с внешними ресурсами. Не закрывайте это окно кнопкой «разрешить» не глядя: в копии работа с внешними ресурсами должна оставаться запрещённой.

Через Конфигуратор

В дереве конфигурации у каждого объекта Общие → Регламентные задания есть свойство Использование. Оно задаёт, включено ли предопределённое задание. Менять его имеет смысл только в собственной конфигурации или при разработке: в типовой на поддержке это правка конфигурации, которая уйдёт при обновлении и потребует снятия с поддержки.

Для рабочей базы правильнее отключать задание в режиме 1С:Предприятие или кодом. Конфигуратор здесь полезен как точка запуска: из него можно открыть базу в режиме предприятия и выполнить обработку.

Как найти и остановить активное фоновое задание

Флажок блокировки не прерывает то, что уже выполняется. Если задание висит часами и держит блокировки, его останавливают отдельно.

Через список заданий в программе

В форме Регламентные и фоновые задания перейдите на вкладку фоновых заданий. Активные отмечены состоянием «Выполняется». Выделите строку и отмените её командой отмены в командной панели формы. Это самый мягкий способ: задание получает сигнал отмены, транзакция откатывается.

Через консоль кластера

  1. В консоли раскройте базу → Сеансы.
  2. Найдите сеансы с приложением Фоновое задание. Колонки начала сеанса и занятого времени подскажут, какой из них «висит».
  3. Правой кнопкой → Удалить. Сеанс завершится, транзакция откатится.

Удаление сеанса фонового задания откатывает всю его незавершённую транзакцию. Если это было проведение документов за месяц, придётся запускать заново. Не завершайте рабочий процесс rphost целиком ради одного задания: оборвутся сеансы всех пользователей, которые на нём работали. Если без этого никак — делайте в нерабочее время и предупредите людей.

Кодом из обработки

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

&НаСервере
Процедура ОстановитьЗаданияНаСервере()

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

    // Выключаем регламентные задания
    Регламентные = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
    Для Каждого Задание Из Регламентные Цикл
        Если Задание.Использование Тогда
            Задание.Использование = Ложь;
            Задание.Записать();
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры

Учтите разницу с флажком в консоли. Код меняет настройки заданий в самой базе: после теста их придётся включать обратно по одному. Флажок в консоли снимается одним щелчком и ничего в базе не меняет.

Файловая база: запрет заданий при запуске

В файловом варианте нет кластера, а значит, нет и флажка. Регламентные задания выполняет один из запущенных клиентских сеансов. Если в базе работают пять человек, задание тихо запустится у кого-то из них, и у этого человека программа будет подтормаживать.

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

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Base\Buh" /AllowExecuteScheduledJobs -Off

Тот же параметр можно вписать в поле дополнительных параметров запуска в настройках базы в стартовом окне: кнопка Изменить, на последнем шаге мастера — поле «Дополнительные параметры запуска». Тогда он будет применяться при каждом входе.

Значение -Force работает наоборот: заставляет сеанс выполнять задания. Это удобно, если выделили под задания отдельный компьютер, а всем остальным пользователям поставили -Off.

Для тестовой копии файловой базы надёжнее отключить задания в самой программе через список регламентных заданий. Параметр запуска легко забыть, когда базу откроет коллега со своего компьютера.

Скрипт: блокировка заданий через rac

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

Порядок команд:

  1. rac cluster list — узнать идентификатор кластера.
  2. rac infobase summary list --cluster=<id> — узнать идентификатор базы по имени.
  3. rac infobase update ... --scheduled-jobs-deny=on — включить блокировку.

Готовый пакетный файл (данные доступа и имя базы поменяйте на свои):

@echo off
set RAC="C:\Program Files\1cv8\8.3.24.1586\bin\rac.exe"
set RAS=localhost:1545
set IBNAME=buh_test
set IBUSER=Администратор
set IBPWD=

for /f "tokens=2 delims=: " %%a in ('%RAC% cluster list %RAS% ^| findstr /b "cluster"') do set CLUSTER=%%a

for /f "tokens=1,2 delims=:" %%a in ('%RAC% infobase summary list --cluster=%CLUSTER% %RAS%') do (
  if "%%a"=="infobase " set IB=%%b
  if "%%a"=="name     " if "%%b"==" %IBNAME%" goto found
)
echo База %IBNAME% не найдена
exit /b 1

:found
set IB=%IB: =%
%RAC% infobase update --cluster=%CLUSTER% --infobase=%IB% --infobase-user=%IBUSER% --infobase-pwd=%IBPWD% --scheduled-jobs-deny=on %RAS%
echo Регламентные задания базы %IBNAME% заблокированы

Разбор вывода rac в cmd хрупкий: число пробелов в колонках может отличаться. Перед боевым использованием выполните rac infobase summary list руками и сверьте, как выглядят строки. Если кластер защищён паролем, добавьте к командам --cluster-user и --cluster-pwd. Полный список ключей покажет rac help infobase.

Снять блокировку — та же команда с --scheduled-jobs-deny=off. Запрет новых сеансов ставится ключом --sessions-deny=on в той же команде rac infobase update.

Для активных сеансов фоновых заданий пригодятся rac session list --cluster=<id> --infobase=<id> и rac session terminate --cluster=<id> --session=<id>. С завершением действуют те же предупреждения, что и для консоли: транзакция откатится.

Тестовая копия рабочей базы: перед первым запуском
Выполнено: 0 / 5

Частые ошибки при блокировке заданий

  • ❌ Поставили флажок и ждут, что зависшее задание остановится. Флажок запрещает только новые запуски. Работающее задание завершайте отдельно.
  • ❌ Заблокировали задания и забыли снять. Через неделю бухгалтер замечает, что курсы валют не грузились, а документы из ЭДО не приходят. После работ проверьте свойства базы.
  • ❌ Отключили задания кодом в рабочей базе вместо флажка. Потом никто не помнит, какие из них были включены до этого. Перед массовым отключением выгрузите список включённых заданий.
  • ❌ Ставят блокировку начала сеансов, думая, что она останавливает задания. Это разные флажки, и действуют они независимо.
  • ❌ В файловой базе ищут флажок в Конфигураторе. Его нет: используйте параметр /AllowExecuteScheduledJobs или отключение заданий в программе.

Частые вопросы

Блокировка регламентных заданий запрещает пользователям запускать фоновые задания вручную?
Нет. Флажок касается только запусков по расписанию. Отчёт или обработка, которые пользователь запускает кнопкой и которые работают в фоне, продолжат выполняться.
Нужно ли перезапускать сервер 1С после включения блокировки?
Не нужно. Блокировка начинает действовать сразу после сохранения свойств базы, без перезапуска службы и без выхода пользователей.
Почему флажок в консоли неактивен или свойства базы не открываются?
Обычно неверно введены имя или пароль администратора информационной базы, либо у пользователя нет административных прав. Ещё одна причина — версия консоли не совпадает с версией сервера.
Можно ли заблокировать задания только для одной базы на сервере?
Да. Флажок ставится в свойствах конкретной информационной базы, остальные базы кластера работают как обычно.
Как понять, что блокировка действительно работает?
Откройте список регламентных заданий в программе и посмотрите дату последнего запуска. После включения блокировки новые запуски по расписанию не появляются.