Аська.
Требования и подключение:
1) Режим работы тонкий клиент
2) Наличие ПараметрыСеанса.ТекущийПользователь тип СправочникСсылка.пользователи (ну это во всех конфигурациях)
3) Из CF файла добавить в конфигурацию 2 регистра сведений , см.скриншот
Изменить тип измерений
ОТ, КОМУ, ПОЛЬЗОВАТЕЛЬ с типа "СТРОКА" на тип "СправочникСсылка.Пользователи"
это все.
Пример использования:
1) добавить в конфигурацию обработку мессенджер.
2) Размещаем на произвольной форме кнопку для открытия мессенджера.
3) в модуле формы в процедуре ПриОткрытии() пишем
ПодключитьОбработчикОжидания("ПроверкаНовогоСМС", 60*3) ; // каждые 3 минуты проверяем новое сообщение
4)
&НаКлиенте
Процедура ПроверкаНовогоСМС()
Если ЕстьНовоеСМС() Тогда
Элементы.КнопкаМессенджер.Картинка = КартинкаНовоеСМС();
Иначе
Элементы.КнопкаМессенджер.Картинка = КартинкаНЕТСМС();
КонецЕсли;
КонецПроцедуры
5)
&НаСервереБезКонтекста
Функция ЕстьНовоеСМС()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(ртРазговоры.ДатаРазговора) КАК ДатаРазговора
|ПОМЕСТИТЬ Разговоры
|ИЗ
| РегистрСведений.ртРазговоры КАК ртРазговоры
|ГДЕ
| (ртРазговоры.От = &текпользователь
| ИЛИ ртРазговоры.Кому = &текпользователь)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(ртРазговорыДатаПросмотра.ДатаПрочтения) КАК ДатаПрочтения
|ПОМЕСТИТЬ РазговорыДатаПросмотра
|ИЗ
| РегистрСведений.ртРазговорыДатаПросмотра КАК ртРазговорыДатаПросмотра
|ГДЕ
| ртРазговорыДатаПросмотра.Пользователь = &текпользователь
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВЫБОР
| КОГДА Разговоры.ДатаРазговора ЕСТЬ NULL
| ИЛИ РазговорыДатаПросмотра.ДатаПрочтения ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ВЫБОР
| КОГДА Разговоры.ДатаРазговора > РазговорыДатаПросмотра.ДатаПрочтения
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| КОНЕЦ КАК ЕстьНовое
|ИЗ
| РазговорыДатаПросмотра КАК РазговорыДатаПросмотра,
| Разговоры КАК Разговоры
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ Разговоры
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ РазговорыДатаПросмотра";
Запрос.УстановитьПараметр("текпользователь", параметрысеанса.ТекущийПользователь);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Если Выборка.ЕстьНовое Тогда
Возврат истина;
КонецЕсли;
КонецЕсли;
Возврат ложь;
КонецФункции