К статье
Практический материал

Автоматизация · 10 мин

1С: оповещение и запуск — что это и как настроить

Что такое механизм «Оповещение и запуск» в 1С, как настроить напоминания и автозапуск задач, типичные ошибки и порядок проверки результата.

В 1С часто встречается связка «оповещение и запуск» — механизм, который уведомляет пользователя о событии и при необходимости автоматически запускает нужное действие: открытие документа, выполнение обработки, старт регламентного задания. В типовых конфигурациях это реализовано через подсистему напоминаний, оповещений пользователя и регламентных заданий, а в самописных решениях — через процедуры Оповестить() и ОбработкаОповещения.

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

Ниже разберём, что именно скрывается за терминами «оповещение» и «запуск» в контексте 1С, какие встроенные механизмы для этого существуют, как их настроить без программирования и как проверить, что всё работает корректно.

Что такое оповещение в 1С

Оповещение — это способ передать сигнал о событии от одной части системы к другой. На уровне платформы существует несколько разных механизмов, которые пользователи и разработчики называют одним словом «оповещение», хотя работают они по-разному.

Первый вариант — пользовательские напоминания. В типовых конфигурациях (Бухгалтерия, Управление торговлей, ЗУП) есть подсистема «Напоминания пользователя»: программа в заданное время показывает окно с текстом и может открыть связанный объект — документ, задачу, контрагента. Второй вариант — программные оповещения между формами: метод Оповестить() отправляет сообщение, а процедура ОбработкаОповещения в другой форме его принимает. Третий вариант — оповещения пользователей через механизм обсуждений или систему взаимодействия.

Что означает «запуск» в этой связке

Под запуском понимается автоматическое выполнение действия по наступлении события. Событие может быть временным (наступило 9:00), связанным с данными (записан документ, приблизился срок оплаты) или инициированным пользователем (нажата кнопка, закрыта форма).

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

Важно различать запуск на клиенте и на сервере. Клиентский запуск (например, через ПодключитьОбработчикОжидания) работает только пока открыт сеанс пользователя. Серверный, через регламентные задания, выполняется независимо от пользователей, что критично для ночных выгрузок, рассылок и синхронизаций.

Как настроить напоминания без программирования

В большинстве типовых конфигураций пользователь может создать напоминание самостоятельно. Обычно команда называется «Напомнить» и находится в меню «Ещё» на форме документа или в разделе настроек. Напоминание привязывается к объекту и срабатывает в указанное время либо за интервал до наступления даты из реквизита (например, за 3 дня до срока оплаты).

Настройка напоминания в типовой конфигурации
  1. 1
    Откройте нужный документ или элемент справочника
  2. 2
    В меню «Ещё» выберите команду «Напомнить» (или откройте раздел «Мои напоминания»)
  3. 3
    Укажите текст напоминания и время срабатывания или привязку к дате объекта
  4. 4
    Сохраните и дождитесь срабатывания — проверьте, что появилось окно напоминания
  5. 5
    Если уведомление не пришло, проверьте, включена ли подсистема напоминаний в настройках программы

Если команда «Напомнить» отсутствует, вероятно, подсистема отключена на уровне настроек конфигурации или у пользователя нет прав. В этом случае нужно обратиться к администратору: включение функциональности обычно выполняется в разделе «Администрирование» — «Общие настройки» или аналогичном.

Автозапуск через регламентные задания

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

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

Программные оповещения между формами

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

bsl
// В форме элемента после записи:
Оповестить("ЗаписанЭлемент", СсылкаНаОбъект, ЭтотОбъект);

// В форме списка:
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "ЗаписанЭлемент" Тогда
        Элементы.Список.Обновить();
    КонецЕсли;
КонецПроцедуры

Ключевое правило: имя события должно быть уникальным и осмысленным. Если использовать общие имена вроде «Обновить», разные подсистемы начнут реагировать на чужие события, что приводит к лишним обновлениям форм и трудноуловимым ошибкам.

Частые ошибки и их последствия

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

Типичные ошибки
01
Повторное подключение обработчика ожидания без отключения предыдущего — процедура вызывается несколько раз подряд
02
Использование клиентских обработчиков ожидания для важных задач — при закрытии сеанса задача не выполнится
03
Слишком частое расписание регламентного задания — растёт нагрузка на сервер и замедляется работа пользователей
04
Общие имена событий в Оповестить() — чужие формы реагируют на событие и выполняют лишние действия
05
Отключение регламентных заданий без анализа — перестают работать обмены и рассылки

Как проверить, что механизм работает

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

Контрольные точки

Как проверить результат

Напоминание
Норма

Окно появляется в заданное время, ссылка открывает нужный объект

Тревожный признак

Окно не появляется или появляется несколько раз

Регламентное задание
Норма

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

Тревожный признак

Статус «Ошибка» или задание давно не выполнялось

Оповещение между формами
Норма

Целевая форма реагирует один раз на одно событие

Тревожный признак

Реакция дублируется или отсутствует

Когда какой вариант выбирать

Маршрут решения

Как выбрать действие

Нужно напомнить конкретному пользователю о документе или датеИспользуйте встроенные напоминания пользователя — без программирования
Действие должно выполняться независимо от того, работает ли кто-то в программеНастройте регламентное задание на сервере
Нужно обновить одну форму по событию в другойИспользуйте Оповестить() и ОбработкаОповещения с уникальным именем события
Действие нужно периодически, пока открыта конкретная формаПодключите обработчик ожидания и отключайте его при закрытии формы

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

Итог

Что важно запомнить

Оповещение — это сигнал о событии, запуск — автоматическая реакция на него. Для пользовательских напоминаний используйте штатную подсистему, для независимых от сеанса задач — регламентные задания, для связи форм — Оповестить(). Любую настройку проверяйте на тестовом событии и не отключайте регламентные задания без анализа их роли.

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

Почему напоминание не приходит, хотя время наступило?

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

Можно ли запустить обработку автоматически без открытия 1С?

Да, если действие оформлено как регламентное задание в серверной базе — оно выполняется на сервере по расписанию. Для файловой базы потребуется запущенный сеанс или запуск через планировщик Windows с пакетным режимом 1С.

Чем оповещение отличается от фонового задания?

Оповещение — это передача сигнала о событии, оно само ничего не вычисляет. Фоновое задание — это выполнение процедуры в отдельном сеансе. Они часто работают вместе: фоновое задание завершается и отправляет оповещение форме о готовности результата.

Почему обработчик ожидания срабатывает несколько раз?

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

Опасно ли менять расписание регламентных заданий?

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

Как понять, какое регламентное задание вызывает ошибку?

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