Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок
SAPE.
|
На главную 1с форева.ру
На страницу "Программисту \ Различные полезные функции, процедуры, куски кода для 1с".
Рассылка сообщений пользователям 1с.
Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 06.02.2017
Рассылка сообщений.
Эта штука родилась из необходимости уведомлять больше количество пользователей о том чтобы они закрыли 1с и не ломились пока идет принятие изменений или обновление.
Сообщения можно отправлять как всем сразу, так и выборочно. Сделано через обработчик ожидания. Код писался под 8.2 обычные формы, но с минимальными доработками будет рабобтать и под 8.3 управляемые формы.
1. В МодульОбычногоПриложения в Процедура ПриНачалеРаботыСистемы() добавить строчку:
ПодключитьОбработчикОжидания("ВывестиСообщенияПользователям",60);
2. В МодульОбычногоПриложения добавить процедуру:
Процедура ВывестиСообщенияПользователям() Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        | СообщенияПользователям.Пользователь,
        | СообщенияПользователям.ТекстЗаголовка,
        | СообщенияПользователям.ТекстСообщения,
        | СообщенияПользователям.Пользователь.Код
        |ИЗ
        | РегистрСведений.СообщенияПользователям КАК СообщенияПользователям";
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
        СоообщениеВыведено = ДополнительныйМодуль.ВывестиСообщениеПользователю (Выборка.Пользователь, Выборка.ТекстЗаголовка, Выборка.ТекстСообщения);
        Если СоообщениеВыведено Тогда
            Попытка
                НаборЗаписей = РегистрыСведений.СообщенияПользователям.СоздатьНаборЗаписей();
                НаборЗаписей.Отбор.Пользователь.Установить(Выборка.Пользователь);
                НаборЗаписей.Записать();
            Исключение
            КонецПопытки;
        КонецЕсли;   
    КонецЦикла;
КонецПроцедуры
3. В общий модуль (в примере это ДополнительныйМодуль) добавить функцию
Функция ВывестиСообщениеПользователю(Получатель,ТекстЗаголовка,ТекстСообщения) Экспорт
    Если ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя=Получатель.Наименование Тогда
        Shell= Новый COMОбъект("Wscript.Shell");
        Shell.Popup(ТекстСообщения,30, ТекстЗаголовка, 4+16);
        Возврат Истина;
    КонецЕсли;
    Возврат Ложь;
КонецФункции
4. Давить регистр сведений РС СообщенияПользователям следующей структуры:
Измерения
        Пользователь тип СправочникСсылка.Пользователи
Ресурсы
        ТекстЗаголовка тип Строка(50)
        ТекстСообщения тип Строка(Неограниченная длина)
5. Для рассылки использовать внешнюю обработку 1с, которая для заданного списка пользователей помещает в РС СообщенияПользователям сообщения.
СформироватьСообщенияПользователям.epf
|
|
|