Пример использования обработчика ожиданий для обмена сообщениями между пользователями. В качестве базовой конфигурации используется Библиотека стандартных подсистем. Применяется справочник "Пользователи" и механизм "ПользователиИнформационнойБазы".
Добавлен регистр сведений "Оповещения":
где ВремяОтправления-тип ДатаВремя;
Получатель - тип Справочник "Пользователи";
Отправитель - тип Справочник "Пользователи";
ТекстОповещения - тип Строка(1000);
ДатаОзнакомления - тип ДатаВремя;
УведомлениеПрочтения - тип Булево.
Для возможности включения/отключения оповещений, в Константы добавлен реквизит "ВключитьОповещения" тип булево.
Добавлена обработка "ОповеститьПользователей".
Вид формы обработки:
В ОбщиеФормы добавлена форма "ФормаОбработчикаОжиданий"
Вид формы:
В модуль приложения конфигурации добавлены фрагменты кода, генерирующие запуск общей формы "ФормаОбработчикаОжиданий" через интервал 30 секунд:
Обмен сообщениями работает следующим образом.
Пользователь, инициирующий сообщение, запускает обработку "ОповеститьПользователей". Вводит текст сообщения, проставляет отметки пользователям, которым он отправляет сообщение. Перечень пользователей имеет переключатель, устанавливающий один из двух видов - все пользователи или только активные пользователи. В случае неактивных пользователей сообщение будет сохраняться до тех пор, пока они не запустят конфигурацию и просмотрят сообщение.
Если проставить галочку в поле "Уведомить о прочтении", то при прочтении Получателем сообщения, Отправителю будет отправлено сообщение о прочтении.
Имеется кнопка "Показать непрочитанные сообщения", при нажатии которой на форму выводится таблица отправленных
Отправителем непрочитанных сообщений. Если проставить отметки в этой таблице и нажать кнопку удаления, отмеченные сообщения удалятся.
Через каждые 30 секунд у активных пользователей инициируется форма "ФормаОбработчикаОжиданий", которая проверяет наличие сообщений для них, и, если они имеются, показывает самое старое.
Сообщение удаляется после нажатия кнопки "Прочитал, ответил". Если Получатель заполнил поле "Ответ", или Отправитель потребовал подтверждение прочтения, на Отправителя инициируется ответное сообщение.
В этом примере использовалась платформа 1С:Предприятие 8.3 (8.3.18.1959), и конфигурация Библиотека стандартных подсистем, редакция 3.1 (3.1.3.374).