РЕКЛАМА

На главную страницу

РЕКЛАМА




Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок 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



Copyright (c) by iKai, 2016