Хочу предложить один из вариантов интеграции jabber-уведомлений в систему - разработать jabber-бот, задачей которого будет следить за каталогом в файловой системе и, при появлении файлов, отсылать их содержимое адресату, указанному в файле.
Проект, который Вы можете скачать во вложении (Visual Studio 2010), основан на библиотеке agsXMPP — программной библиотеке, с помощью которой можно реализовать как клиентскую, так и серверную часть XMPP. В настоящий момент agsXMPP считается устаревшей и ей на смену была разработана MatriX. Но она в отличие от agsXMPP распространяется только на коммерческих условиях.Двойная лицензия позволяет использовать её в проектах с закрытым исходным кодом.
Программа запускается в режиме обычного приложения, с возможностью сворачивания в трей. При необходимости, возможно переписать в режим службы, но это уже оставлю на усмотрение читателя.
Обратите внимание, логин-пароль jabber-бота и другие параметры подключения прописаны в коде приложения - опять же, в рамках моих нужд.
Настройка путей
В коде прописан путь C:\jabber, в который программа должна иметь права на чтение и удаление файлов.
Для пользователей эта папка прописывается как сетевая (возможно скрытой, через $), с доступом на создание файлов.
Формат файла
Текстовый файл, расширение .txt, текст в UTF-8
1-я строка: адресат в jabber (пример: admin@jabber.ru)
2-я строка и последующие: текст сообщения.
Пример использования
//Адресат - спр. "Пользователи"
Процедура УведомлениеВЧат(Адресат, Текст) Экспорт
попытка
т = новый ТекстовыйДокумент;
// внимание, нижеследующий блок нужно заменить на свой
// для переданного пользователя нужно получить логин
// например, свойство пользователя
jabber = ПолучитьJabberАдрес(Адресат);
т.ДобавитьСтроку(jabber + "@192.168.0.3"); // адресат
Если ТипЗнч(Текст) = Тип("СписокЗначений") тогда
Для каждого тмп из Текст Цикл
т.ДобавитьСтроку(тмп);
КонецЦикла;
Иначе
т.ДобавитьСтроку(Строка(Адресат) + ", " + Текст);
КонецЕсли;
т.Вывод = истина;
// также не забудьте правильно указать каталог
т.Записать("\\SERVER\JABBER\"+Строка(новый УникальныйИдентификатор()) + ".txt", КодировкаТекста.UTF8);
исключение
// обработка нехватки прав на файловый вывод и т.п.
конецПопытки;
КонецПроцедуры
Использование в коде в исключениях:
Попытка
... куча кода ...
Исключение
// сразу узнаем!!!
_СистемныеОповещения.УведомлениеВЧат(Справочники.Пользователи.НайтиПоНаименованию("Админ"), ОписаниеОшибки());
КонецПопытки
Одно из удобных применений - это использование в длительных регламентных заданиях, когда хочется узнать статус текущего процесса. Для этого необходимо в код разместить периодический вызов jabber-оповещения, например: "Перепровожу УУУ док. из ХХХ". Также, т.к. программа вынесена из 1С, ее возможно использовать в других приложениях, способных сформировать текстовый файл в указанном формате.