gifts2017

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

Опубликовал Дмитрий Глазырин (glassman) в раздел Программирование - Работа с интерфейсом

Часто пользователи просят, чтобы 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
10
.epf 1.0 17,01Kb 10 Скачать
Конфигурация для управляемого приложения
.cf 21,42Kb
04.11.14
8
.cf 1.0 21,42Kb 8 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ден Ден (ezhik_2000) 08.11.14 23:13
Зачем так заморачиваца, подобную проблему решили очень просто...
В 1с:Документооборот при появлении новой задачи выходило модальное окно
и если 1с была свернута то она начинала мигать...
2. Дмитрий Глазырин (glassman) 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) 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
Платформа умеет сама мигать своим значком...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа