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