В разделе "Проекты" на форму просмотра проекта по умолчанию вынесен виджет "Лента проекта". По своей сути является виджетом, использующим ленту объекта "Проект".
В системе уведомлений раздела Проекты добавлены ключевые события с проектом и бизнес-процессами, связанными с проектом. Уведомления по умолчанию организованы довольно емко, чтобы не перегружать уведомлениями участников проектной деятельности.
В ряде организаций требования к логированию событий по проекту несколько выше, чем мы закладывали при разработке модуля. Например, требуется отправлять уведомления о выполнении задач при выполнении любой проектной задачи с сохранением в Ленте проекта.
Для этого предлагаю реализовать отправку уведомлений через обработчик событий в модуле на изменение прогресса в проектных задачах.
Код:
async function action(): Promise<void> {
if (Context.data.__item!.namespace === '_project_management' && Context.data.__item!.code === '_project_task') {
//выполняем поиcк элемента по id, где _project_task - контекстная переменная из настроек модуля
var task = await Namespace.params.fields.project_task.app.search().where(a => a.__id.eq(Context.data.__item!.id)).first();
if (task && task.data._progress == 100) {
const responsible = await task.data._responsible!.fetch();
let message = 'Ответственный ' + responsible.data.__name;
if (task.data._project_ref){
const project = await task.data._project_ref!.fetch();
project.sendMessage('Задача '+ task.data.__name + ' выполнена',message)
}
}
}
}
Файл модуля прилагаю.