Как сообщить всем пользователям, что добавлен новый, очень нужный и полезный механизм в 1С: Предприятие 8.1 или 8.2? В этой статье я расскажу как это сделать с минимальным исправлением конфигурации поставщика.
1. Создаем регистр сведений "ОповещениеПользователей" непериодический, независимый с измерениями: Пользователь (СправочникСсылка.Пользователи), Дата (Дата), Владелец (СправочникСсылка.Пользователи); Ресурсы: Просмотрено (Булево), Оповещение (СправочникСсылка.ВнешниеОбработки, Строка)
2. Создаем общий модуль, напр.: опМодуль (глобальный, Клиент (обычное приложение)
Этот модуль имеет следующий текст:
Функция ВывестиОповещение(ИмяОтчета);
ИмяФайла = ПолучитьИмяВременногоФайла();
Отчет = Справочники.ВнешниеОбработки.НайтиПоНаименованию(ИмяОтчета);
ДвоичныеДанные = Отчет.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
опФорма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
опФорма.Открыть();
УдалитьФайлы(ИмяФайла);
КонецФункции
Процедура ПроверкаНовыхОповещений() Экспорт
ОтборПользователей = Новый Структура("Пользователь");
ОтборПользователей.Пользователь = ПараметрыСеанса.ТекущийПользователь;
Оповещения = РегистрыСведений.ОповещениеПользователей.Выбрать(ОтборПользователей);
КолОп = 0;
Пока Оповещения.Следующий() Цикл
Если Оповещения.Просмотрено Тогда
Продолжить;
КонецЕсли;
КолОп = КолОп + 1;
КонецЦикла;
Если (КолОп>0) Тогда
ВывестиОповещение("Оповещения пользователя");
КонецЕсли;
КонецПроцедуры
Процедура ЗадатьИнтервал(Интервал) Экспорт
ПодключитьОбработчикОжидания("ПроверкаНовыхОповещений",Интервал,Ложь);
КонецПроцедуры
Процедура ОчиститьИнтервал() Экспорт
ОтключитьОбработчикОжидания("ПроверкаНовыхОповещений");
КонецПроцедуры
3. Исправляем процедуру ПриНачалеРаботыСистемы() - добавим строку в конец процедуры:
ЗадатьИнтервал(60);
На этом исправления конфигурации поставщика заканчивается
4. Качаем приложенные обработки
5. Добавляем как внешние обработки и обзываем их следующим образом:
ОповещенияПользователя.epf - "Оповещения пользователя"
Оповестить.epf - "Оповестить"
ДобавленОтчет.epf - "Добавлен отчет" (это для примера)
6. Редактируем макет обработки ДобавленОтчет.epf под свои нужды (вставляем картинки, таблицы, пишем текст). Кто не знает как редактировать макет - пишите мне лично, может быть подскажу.
7. Запускаем обработку "Оповестить", выбираем в ней обработку "Добавлен отчет" и пользователей, которые должны получить это оповещение.
8. Принимаем звонки с вопросами типа: "А что это там у меня вылезло?" :)