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

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

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

Способ 1. Настройка стандартных почтовых уведомлений (Email)

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

  1. Настройка системной учетной записи. Перейдем в раздел Настройка и администрирование, далее выберем пункт Учетные записи. Здесь необходимо создать или отредактировать существующую системную учетную запись (она обычно помечена специальным значком). Именно с этого почтового ящика программа будет рассылать служебные письма.
  2. Заполнение адресов пользователей. У каждого пользователя в его карточке (или в персональных настройках уведомлений, начиная с редакции 1.2.6) должен быть корректно заполнен рабочий E-mail.
  3. Включение опции уведомлений. Зайдем под правами администратора в раздел Настройка и администрирование -> Настройка программы -> Общие параметры и проверим, установлена ли галочка Использовать уведомления.
  4. Подписка на события. Чтобы пользователи получали письма именно о новых задачах, необходимо настроить подписки. Это делается в персональных настройках или централизованно администратором для каждого сотрудника на конкретные виды бизнес-событий (например, «Создание задачи»).

Устранение проблем: почему регламентные задания не запускаются автоматически?

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

Основной причиной блокировки автоматического запуска является включенная опция блокировки регламентных заданий на уровне СУБД или кластера серверов. Чтобы это исправить, выполним следующие действия:

  1. Откроем консоль Администрирование серверов 1С Предприятия.
  2. Найдем в списке нашу информационную базу и откроем ее Свойства.
  3. Найдем параметр Блокировка регламентных заданий включена и снимем с него галочку.
  4. Проверим в расписании регламентного задания дату начала работы. Для этого дважды кликнем по заданию, зайдем в настройки расписания и на вкладке Общие убедимся, что установлена актуальная дата начала и задан правильный интервал повторения (например, каждые 60 секунд).

Способ 2. Всплывающие окна на рабочем столе пользователя (VBScript)

Если стандартного почтового уведомления недостаточно и требуется привлечь максимальное внимание пользователя (вывести окно поверх всех запущенных программ), можно прибегнуть к кастомизации системы. Разберем программное решение, реализующее «непотопляемое» окно предупреждения.

Для реализации этой схемы мы можем задействовать подписку на событие создания задачи и обработчик ожидания на клиенте. Посмотрим на пример кода, который инициализирует всплывающее окно средствами операционной системы через COM-объект:


// Код для вызова системного окна сообщений Windows
ScrCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
ScrCtrl.Language = "VBscript";
ScrCtrl.ExecuteStatement("msgbox(""Вам поступила новая задача в 1С:Документооборот!"", 262144, ""Внимание!"")");

Параметр 262144 в функции msgbox является системной константой Windows (vbSystemModal), которая заставляет окно отображаться поверх абсолютно всех запущенных приложений, гарантируя, что пользователь его увидит.

Чтобы этот код срабатывал вовремя, нам необходимо настроить обработчик ожидания, который будет периодически опрашивать базу на наличие новых задач. Реализуем эту логику в модуле управляемого приложения:


Процедура ПриНачалеРаботыСистемы()
    // Подключаем проверку каждые 5 минут (300 секунд)
    ПодключитьОбработчикОжидания("ПроверитьНовыеЗадачиПользователя", 300);
КонецПроцедуры

Процедура ПроверитьНовыеЗадачиПользователя() Экспорт
    // Здесь вызывается серверная функция, проверяющая наличие непрочитанных задач
    ЕстьНовыеЗадачи = ПроверитьНаличиеНовыхЗадачНаСервере();
    
    Если ЕстьНовыеЗадачи Тогда
        ScrCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
        ScrCtrl.Language = "VBscript";
        ScrCtrl.ExecuteStatement("msgbox(""Вам поступила новая задача! Пожалуйста, проверьте список задач."", 262144, ""Новое уведомление"")");
    КонецЕсли;
КонецПроцедуры

Для того чтобы система понимала, какие именно задачи считать «новыми», рекомендуется создать простой независимый Регистр сведений (например, «НовыеЗадачиПользователей») с измерениями Пользователь и Задача. При создании задачи бизнес-процессом мы делаем запись в этот регистр. В момент, когда обработчик ожидания срабатывает и показывает окно, запись из регистра удаляется (или флаг меняется на противоположный), что предотвращает повторное появление одного и того же уведомления.

Способ 3. Интеграция с мессенджерами (Jabber / QIP / Современные чат-боты)

Еще одним эффективным каналом доставки является отправка мгновенных сообщений в корпоративный мессенджер. Рассмотрим архитектуру решения на примере протокола Jabber (XMPP), который легко адаптируется под любые современные корпоративные чаты:

  1. В контактной информации пользователя создается дополнительное поле для хранения идентификатора мессенджера (например, JID или UIN).
  2. Для отправки сообщений задействуется специализированная внешняя компонента или системная утилита, работающая по протоколу XMPP.
  3. При возникновении бизнес-события создания задачи регламентное задание формирует строку с текстом задачи и уникальным идентификатором.
  4. Для удобства пользователей можно реализовать интерактивные ответы. Например, отправка сообщения формата «[ID задачи] Согласовано» обратно на служебный аккаунт 1С позволяет обработать входящее сообщение регулярными выражениями и автоматически согласовать задачу без непосредственного открытия интерфейса 1С.

Проанализируем структуру разбора входящего сообщения от пользователя в процедуре обработки внешнего события:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Источник = "МессенджерКомпонента" И Событие = "ПолученоСообщение" Тогда
        // Переменная Данные содержит текст ответа, например: "Заявка 1205 Утверждаю"
        СтрокаПолучена = СокрЛП(Данные);
        
        // Производим парсинг строки
        МассивСлов = ОбщегоНазначенияКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаПолучена, " ");
        Если МассивСлов.Количество() >= 2 Тогда
            НомерЗадачи = МассивСлов[1];
            РешениеПользователя = МассивСлов[2];
            
            // Вызываем серверный метод для автоматического исполнения задачи
            ОбработатьРешениеИзМессенджераНаСервере(НомерЗадачи, РешениеПользователя);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Способ 4. Использование встроенной Системы взаимодействия (1С:Диалог)

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

Для реализации этого механизма выполните следующие шаги:

  1. Зарегистрируйте информационную базу в сервисе Системы взаимодействия (через меню Администрирование -> Система взаимодействия).
  2. В обработчике бизнес-события создания новой задачи пропишите код создания невидимого или служебного обсуждения с пользователем-исполнителем.
  3. Отправьте сообщение в созданное обсуждение. Платформа самостоятельно позаботится о выводе push-уведомления на рабочем столе операционной системы (Windows, macOS) или на мобильном устройстве через мобильный клиент.

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

← На главную