Основная идея разработки - это один раз инициализировать систему, а затем вызывать мигание, когда это необходимо.
Для обычного приложения.
Решение основано на дополнительной обработке "Мигание значка на панеле задач", которую необходимо вставить в конфигурацию. Алгоритм внедрения:
1. Добавить в конфигурацию новую обаботку "Мигание значка на панеле задач".
2. В модуле обычного приложения, в разделе объявления переменных добавить:
Перем ОбработкаМиганияЗначка Экспорт;
3. В модуле обычного приложения в начале процедура "ПриНачалеРаботыСистемы" добавить:
Процедура ПриНачалеРаботыСистемы()
//объекты для вызова "мигания" окна
ОбработкаМиганияЗначка=обработки.МиганиеЗначкаНаПанелеЗадач.Создать();
ОбработкаМиганияЗначка.Инициализировать();
//.........
КонецПроцедуры
После этого достаточно в том месте программы, в котором необходимо уведомить пользователя, вставить:
//Вызвать мигание окна, если оно не активно
ОбработкаМиганияЗначка.Мигнуть();
Для управляемого приложения.
Для управляемого приложения все несколько усложняется в виду того, что модуль обработки исполняется на сервере, а "мигать" надо на клиенте. Кроме того, управляемое приложение может иметь множество окон и охота выбирать, каким окном мигать.
Решение для управляемого приложения предлагается в виде мини-конфигурации, содержащей только необходимые объеты. Для ее внедрения необходимо выполнить сравнение и объединение. ВНИМАНИЕ! При сравнении и объединении лучше снимите галочки с ветки "Свойства", чтобы не потерять данные своих модулей.
Если вы хорошо понимаете, как проходят процессы сравнения и объединения, то может вручную настроить объединение только моудля управляемого приложения. Остальные модули в прилагаемой конфигурации пусты.
В конфигурации содержатся:
1. Модуль управляемого приложения
2. Подсистема "МиганиеОкон"
3. Общие модули "МиганиеКлиент" и "МиганиеСервер"
4. Общий макет "DynamicWrapper32".
После объединения конфигураций убедитесь, что в модуле управляемого приложения в разделе объявления переменных у вас есть:
//Переменны для управления миганием окон
Перем ApiFunctions Экспорт;
Перем НомерОкна1с Экспорт;
Перем НомерОкнаМигания Экспорт;
//
В начале процедуры "ПриНачалеРаботыСистемы":
//Инициализация компонент
МиганиеКлиент.Инициализировать();
После этого можно сохранять конфигурацию.
Для управляемого приложения предусмотрено две экспортные процедуры общего модуля "МиганиеКлиент":
1. МигатьЭтимОкном() - позволяет установить текущее окно тем, которое будет мигать на панеле задач при вызове процедуры "Мигнуть()";
1. Мигнуть() - начинает мигать окном, для которого было вызвано МигатьЭтимОкном(). Если это окно не существует или было не задано, то мигает основное окно 1С.
Пример использования:
&НаКлиенте
Процедура ПолучитьСписокФайлов(Команда)
МиганиеКлиент.МигатьЭтимОкном();
ПолучитьСписокФайловНаСервере();
МиганиеКлиент.Мигнуть();
КонецПроцедуры
Всем успехов!