Мигание значка 1С на панели задач

Программирование - Работа с интерфейсом

Часто пользователи просят, чтобы 1С, будучи свернутой в значок, как-то оповещала о каком-нибудь событии, требующем внимания пользователя. В Windows есть встроенный механизм "мигания" значка на панели задач. Но просто так этот механизм не активировать средствами 1С.
В данной публикации предлагаю:
для обычного приложения - обработку, которая инкапсулирует все необходимые махинации с СОМ-объектами.
для управляемого приложения - cf-файл с необходимыми объектами.

Создано на основе публикации http://infostart.ru/public/267819/

Основная идея разработки - это один раз инициализировать систему, а затем вызывать мигание, когда это необходимо.

Для обычного приложения.

Решение основано на дополнительной обработке "Мигание значка на панеле задач", которую необходимо вставить в конфигурацию. Алгоритм внедрения:

1. Добавить в конфигурацию новую обаботку "Мигание значка на панеле задач".

2. В модуле обычного приложения, в разделе объявления переменных добавить:

Перем ОбработкаМиганияЗначка Экспорт;

3. В модуле обычного приложения в начале процедура "ПриНачалеРаботыСистемы" добавить:

 

Процедура ПриНачалеРаботыСистемы()
	//объекты для вызова "мигания" окна
	ОбработкаМиганияЗначка=обработки.МиганиеЗначкаНаПанелеЗадач.Создать();
	ОбработкаМиганияЗначка.Инициализировать();

        //.........
КонецПроцедуры

После этого достаточно в том месте программы, в котором необходимо уведомить пользователя, вставить:

//Вызвать мигание окна, если оно не активно
ОбработкаМиганияЗначка.Мигнуть();

Для управляемого приложения.

 Для управляемого приложения все несколько усложняется в виду того, что модуль обработки исполняется на сервере, а "мигать" надо на клиенте. Кроме того, управляемое приложение может иметь множество окон и охота выбирать, каким окном мигать. 

Решение для управляемого приложения предлагается в виде мини-конфигурации, содержащей только необходимые объеты. Для ее внедрения необходимо выполнить сравнение и объединение. ВНИМАНИЕ! При сравнении и объединении лучше снимите галочки с ветки "Свойства", чтобы не потерять данные своих модулей.

Если вы хорошо понимаете, как проходят процессы сравнения и объединения, то может вручную настроить объединение только моудля управляемого приложения. Остальные модули в прилагаемой конфигурации пусты.

В конфигурации содержатся:

1. Модуль управляемого приложения

2. Подсистема "МиганиеОкон"

3. Общие модули "МиганиеКлиент" и "МиганиеСервер"

4. Общий макет "DynamicWrapper32".

 

После объединения конфигураций убедитесь, что в модуле управляемого приложения в разделе объявления переменных у вас есть:

//Переменны для управления миганием окон
Перем ApiFunctions Экспорт;
Перем НомерОкна1с Экспорт;
Перем НомерОкнаМигания Экспорт;
//

В начале процедуры "ПриНачалеРаботыСистемы":

	//Инициализация компонент
	МиганиеКлиент.Инициализировать();

После этого можно сохранять конфигурацию.

 

Для управляемого приложения предусмотрено две экспортные процедуры общего модуля "МиганиеКлиент":

1. МигатьЭтимОкном() - позволяет установить текущее окно тем, которое будет мигать на панеле задач при вызове процедуры "Мигнуть()";

1. Мигнуть() - начинает мигать окном, для которого было вызвано МигатьЭтимОкном(). Если это окно не существует или было не задано, то мигает основное окно 1С.


Пример использования:

&НаКлиенте
Процедура ПолучитьСписокФайлов(Команда)
	МиганиеКлиент.МигатьЭтимОкном();
	ПолучитьСписокФайловНаСервере();
	МиганиеКлиент.Мигнуть();
КонецПроцедуры

Всем успехов!


 

Скачать файлы

Наименование Файл Версия Размер
МиганиеЗначкаНаПанелеЗадач.epf
.epf 17,01Kb
04.11.14
14
.epf 1.0 17,01Kb 14 Скачать
Конфигурация для управляемого приложения
.cf 21,42Kb
04.11.14
11
.cf 1.0 21,42Kb 11 Скачать

См. также

Комментарии
1. Ден Ден (ezhik_2000) 39 08.11.14 23:13 Сейчас в теме
Зачем так заморачиваца, подобную проблему решили очень просто...
В 1с:Документооборот при появлении новой задачи выходило модальное окно
и если 1с была свернута то она начинала мигать...
2. Дмитрий Глазырин (glassman) 128 09.11.14 13:12 Сейчас в теме
(1) ezhik_2000, Изначально задача стояла не для докуметооборота ) И модальные окна выводить не охота.
3. Р Е (ruziya) 01.02.16 13:21 Сейчас в теме
что-то не работает мигание :(
имею документооборот 1.4.11.2
на платформе 8.3.5.1517
скачал Вашу конфигурацию. объединил как написано. проверил модуль управ-го приложения. там нужных абзацев не было.
я их дописал.
сохранил конф-ию. зашёл под двумя разными пользователями. создал процесс ознакомления. отправил. у другого пользователя ни одно окно/значок не замигал.
в чём моя ошибка?
4. Дмитрий Глазырин (glassman) 128 02.02.16 08:21 Сейчас в теме
(3) ruziya, проверьте на отладчике, регистрируется ли у вас компонента?
5. Р Е (ruziya) 10.02.16 09:59 Сейчас в теме
а где это можно увидеть в отладчике?
не очень ориентируюсь.
6. Р Е (ruziya) 16.02.16 11:14 Сейчас в теме
подскажите где в отладчике смотреть, пожалуйста
7. Р Е (ruziya) 14.04.16 09:42 Сейчас в теме
процедура инициализации не проходит.
нет регистрации
что делать?
8. Виктор Назаров (androgin) 21.06.16 17:43 Сейчас в теме
Платформа умеет сама мигать своим значком...
Оставьте свое сообщение