Оповестить всех активных пользователей

1. aidaakylkyzy 14.03.24 16:27 Сейчас в теме
Здравствуйте. Стоит задача каждые 2 часа оповестить всех пользователей каким то текстом. Создала регламентную обработку. Получила активные пользователи через метод ПолучитьСоединенияИнформационнойБазы(). И как теперь выводить им сообщение?
По теме из базы знаний
Найденные решения
4. aidaakylkyzy 14.03.24 19:03 Сейчас в теме
(1)Нашла решение "Напоминание". Создаю запись в регистре сведении НапоминанияПользователя с активными пользователями:
МенеджерЗаписиНапоминания = РегистрыСведений.НапоминанияПользователя.СоздатьМенеджерЗаписи();
        МенеджерЗаписиНапоминания.ВремяСобытия = ТекущаяДата() + 10;
        МенеджерЗаписиНапоминания.СрокНапоминания = ТекущаяДата() + 10;
        МенеджерЗаписиНапоминания.СпособУстановкиВремениНапоминания = Перечисления.СпособыУстановкиВремениНапоминания.ВУказанноеВремя;    
		МенеджерЗаписиНапоминания.Пользователь = АктивныйПользователь;

        МенеджерЗаписиНапоминания.Источник = Стр.Ссылка;
        МенеджерЗаписиНапоминания.Описание = "Проверка";
        МенеджерЗаписиНапоминания.ИнтервалВремениНапоминания = 5;
        
         Расписание = Неопределено;
        //КонецЕсли;
        МенеджерЗаписиНапоминания.Расписание = Новый ХранилищеЗначения(Расписание, Новый СжатиеДанных(9));

        НаборЗаписей = РегистрыСведений.НапоминанияПользователя.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Пользователь.Установить(МенеджерЗаписиНапоминания.Пользователь);
        НаборЗаписей.Отбор.Источник.Установить(МенеджерЗаписиНапоминания.Источник);
        НаборЗаписей.Прочитать();
        Если НаборЗаписей.Количество() > 0 Тогда
            ЗанятоеВремя = НаборЗаписей.Выгрузить(,"ВремяСобытия").ВыгрузитьКолонку("ВремяСобытия");
            Пока ЗанятоеВремя.Найти(МенеджерЗаписиНапоминания.ВремяСобытия) <> Неопределено Цикл
                МенеджерЗаписиНапоминания.ВремяСобытия = МенеджерЗаписиНапоминания.ВремяСобытия + 1;
            КонецЦикла;
        КонецЕсли;
        МенеджерЗаписиНапоминания.Записать();
Показать
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 14.03.24 16:52 Сейчас в теме
(1)Никак. Необходимо в каждом сеансе читать сообщение.
3. laperuz 46 14.03.24 18:01 Сейчас в теме
Дополню.
Сейчас можно через систему взаимодействия, а в 8.3.26 обещают и без нее
https://wonderland.v8.1c.ru/blog/otpravka-uvedomleniy-s-servera-v-klientskoe-prilozhenie/

А так да, пишете в регистр сообщения, в каждом сеансе обработчик ожидания, который периодически проверяет этот регистр.
Если в конфигурации есть БСП, можно использовать ее подсистему уведомлений
4. aidaakylkyzy 14.03.24 19:03 Сейчас в теме
(1)Нашла решение "Напоминание". Создаю запись в регистре сведении НапоминанияПользователя с активными пользователями:
МенеджерЗаписиНапоминания = РегистрыСведений.НапоминанияПользователя.СоздатьМенеджерЗаписи();
        МенеджерЗаписиНапоминания.ВремяСобытия = ТекущаяДата() + 10;
        МенеджерЗаписиНапоминания.СрокНапоминания = ТекущаяДата() + 10;
        МенеджерЗаписиНапоминания.СпособУстановкиВремениНапоминания = Перечисления.СпособыУстановкиВремениНапоминания.ВУказанноеВремя;    
		МенеджерЗаписиНапоминания.Пользователь = АктивныйПользователь;

        МенеджерЗаписиНапоминания.Источник = Стр.Ссылка;
        МенеджерЗаписиНапоминания.Описание = "Проверка";
        МенеджерЗаписиНапоминания.ИнтервалВремениНапоминания = 5;
        
         Расписание = Неопределено;
        //КонецЕсли;
        МенеджерЗаписиНапоминания.Расписание = Новый ХранилищеЗначения(Расписание, Новый СжатиеДанных(9));

        НаборЗаписей = РегистрыСведений.НапоминанияПользователя.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Пользователь.Установить(МенеджерЗаписиНапоминания.Пользователь);
        НаборЗаписей.Отбор.Источник.Установить(МенеджерЗаписиНапоминания.Источник);
        НаборЗаписей.Прочитать();
        Если НаборЗаписей.Количество() > 0 Тогда
            ЗанятоеВремя = НаборЗаписей.Выгрузить(,"ВремяСобытия").ВыгрузитьКолонку("ВремяСобытия");
            Пока ЗанятоеВремя.Найти(МенеджерЗаписиНапоминания.ВремяСобытия) <> Неопределено Цикл
                МенеджерЗаписиНапоминания.ВремяСобытия = МенеджерЗаписиНапоминания.ВремяСобытия + 1;
            КонецЦикла;
        КонецЕсли;
        МенеджерЗаписиНапоминания.Записать();
Показать
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот