Вывод оповещения к документу через систему взаимодействия
Часто требуется оповестить пользователя о работе с документом и, система взаимодействия для этого очень сильно подходит. В данной статье я приведу пример организации вывода оповещения автору документа.
Легенда:
Пользователь делает Запрос в отдел закупок специальным нетиповым документом.
Отдел закупок отвечает, и у пользователя в правом нижнем углу всплывает ответ, и далее пользователи могут переписываться в чате документа, или пользователь, получив ответ, оперативно двигается дальше
- Описание
- Подробнее
Описание
Появление всплывающих оповещений, через Систему взаимодействия
Покажу на следующем примере:
Пользователь делает Запрос в Отдел закупок специальным нетиповым документом.
Отдел закупок отвечает и у пользователя в правом нижнем углу всплывает ответ.
1. В документе Запрос в Отдел закупок создается специальный реквизит — ИдентификаторБеседы, если документ типовой, то надо через Регистр сведений делать
В процедуру формы После записи вносится следующий код:
&НаСервере
Процедура ПослеЗаписиСервер()
Если СокрЛП(Объект.ИденификаторОбсуждения) = "" Тогда
КонтекстДляОбсуждения = Новый КонтекстОбсужденияСистемыВзаимодействия(ПолучитьНавигационнуюСсылку(Объект.Ссылка));
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
Обсуждение.Заголовок = "По документу";
Обсуждение.КонтекстОбсуждения = КонтекстДляОбсуждения;
Обсуждение.Отображаемое = Истина;
Обсуждение.Записать();
Объект.ИденификаторОбсуждения = СокрЛП(Обсуждение.Идентификатор);
Записать();
КонецЕсли;
КонецПроцедуры
2. В документ Ответ, который инициирует появление оповещения вносится этот код:
&НаСервере
Процедура ПослеЗаписиСервер()
ТекстСообщения= "По документу получен ответ";
Если не СтрДлина(ТекстСообщения) = Объект.ДлиннаОтвета Тогда
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(Новый ИдентификаторОбсужденияСистемыВзаимодействия(Объект.ДокументОснование.ИденификаторОбсуждения));
Сообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор);
Сообщение.Текст = ТекстСообщения;
ИдентификаторПользователяСВ = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(Объект.ДокументОснование.Автор.ИдентификаторПользователяИБ);
Сообщение.Получатели.Добавить(ИдентификаторПользователяСВ);
Сообщение.Записать();
Объект.ДлиннаОтвета = СтрДлина(ТекстСообщения);
Записать();
КонецЕсли;
КонецПроцедуры