Как создать свой вид уведомлений в ЗУП 3.1 КОРП: пошаговое руководство

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

Разработка собственных уведомлений в ЗУП 3.1 КОРП — задача, требующая понимания архитектуры подсистемы уведомлений БСП. Рассмотрим, как правильно реализовать новый вид уведомлений, какие методы необходимо задействовать и как избежать типичных проблем при регистрации шаблонов.

Регистрация вида уведомления

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

  1. Добавление вида уведомления в методе ПриЗаполненииСпискаВидовУведомлений.
  2. Инициализация параметров в методе ИнициализацияВидаУведомления.
  3. Создание функции для выборки данных.

Рассмотрим структуру инициализации. Важно правильно задать ТипПредмета — это объект, относительно которого будет строиться уведомление.


Процедура ИнициализацияВидаУведомленияМоеСобытие(ОписаниеДанных) Экспорт 
    ОписаниеДанных.ТипПредмета = Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица");
    УведомленияСервер.ДобавитьПолучателя(ОписаниеДанных, "ФизическоеЛицо", НСтр("ru = 'Сотрудник'"), Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"));
    УведомленияСервер.ДобавитьОтбор(ОписаниеДанных, "Организация", НСтр("ru='Организация'"), Новый ОписаниеТипов("СправочникСсылка.Организации"));
КонецПроцедуры

Работа с методом получения данных

Чтобы система знала, какие именно уведомления нужно отправить, необходимо реализовать метод ПолучениеДанныхВидаУведомления. Этот метод должен возвращать таблицу с тремя обязательными колонками:

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

Настройка и обновление шаблонов

Одной из частых проблем является отсутствие шаблона после вызова УведомленияСервер.ОбновитьВидыУведомлений. Для того чтобы шаблон создался, необходимо, чтобы сработал механизм регистрации обработчиков обновлений. Если автоматическое обновление не запускается, проверьте корректность регистрации обработчика в процедуре ЗарегистрироватьОбработчикиОбновления.

Если обновление по какой-то причине не происходит в штатном режиме, вы можете принудительно вызвать метод инициализации данных:


// Пример вызова для принудительной генерации шаблонов
КадровыйУчетУведомления.ПриНачальномЗаполненииДанныхПодсистемыУведомлений();

Архитектурные рекомендации и отладка

При проектировании уведомлений учитывайте, что существует два основных типа категорий (перечисление КатегорииВидовУведомлений):

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

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

← На главную