gifts2017

Показ сообщения при свернутой 1С ИЛИ Вывод на экран пользователя модального окна Windows

Опубликовал Никита Долгих (Nik_1c_bitrix) в раздел Программирование - Практика программирования

Это статья для тех, кто не знает, как:
1. Выдать пользователю окно, которое он не сможет проигнорировать.
2. Выдать пользователю сообщение, которое он точно прочтет.
3. Выдать пользователю сообщение с различными типами кнопок и значком.
4. Выдать пользователю сообщение с одним из значков: значок Stop, значок Question, значок Exclamation, значок Information.

Для этого необходимо использовать объект Wscript.Shell.

Этот объект выводит на экран модальное окно сообщения(Windows).

Для этого необходимо создать COMОбъект и обратиться к методу Popup этого объекта, передав ему в качестве параметров

Popup(<Текст>,<КоличествоСекундОжидания>,<Заголовок>,<Тип>)

<Текст> - строка, текст сообщения.


<КоличествоСекундОжидания> - необязательный, число. Количество секунд, по истечении которого окно будет автоматически закрыто.


<Заголовок> - необязательный, строка. Текст заголовка окна сообщения.


<Тип> - необязательный, число. Комбинация флагов, определяет тип кнопок и значка. Возможные значения флагов:

"<Кнопка>+<Значок>",

где <Кнопка> это

0 - кнопка ОК.
1 - кнопки ОК и Отмена.
2 - кнопки Стоп, Повтор, Пропустить.
3 - кнопки Да, Нет, Отмена.
4 - кнопки Да и Нет.
5 - кнопки Повтор и Отмена.

где <Значок> это:

16 - значок Stop.
32 - значок Question.
48 - значок Exclamation.
64 - значок Information.

Возвращаемое значение: целое значение, с помощью которого можно узнать, какая кнопка быля нажата пользователем. Возможные значения:

-1 - таймаут.
1 - кнопка ОК.
2 - кнопка Отмена.
3 - кнопка Стоп.
4 - кнопка Повтор.
5 - кнопка Пропустить.
6 - кнопка Да.
7 - кнопка Нет.

Пример:
Shell= Новый COMОбъект("Wscript.Shell");
Shell.Popup("Текст сообщения",30, "Текст заголовка", 4+16);

См. также

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

Комментарии

1. Rauan Sandybaev (sandybaev) 16.03.15 08:34
Этот функционал же есть в самой платформе?!
2. Rauan Sandybaev (sandybaev) 16.03.15 08:36
Глобальный контекст (Global context)
Предупреждение (DoMessageBox)
Синтаксис:

Предупреждение(<ТекстПредупреждения>, <Таймаут>, <Заголовок>)
Параметры:

<ТекстПредупреждения> (обязательный)

Тип: Строка.
Текст предупреждения.
<Таймаут> (необязательный)

Тип: Число.
Интервал времени в секундах, в течение которого система будет ожидать ответа пользователя. По истечении интервала окно предупреждения будет закрыто. Если параметр не указан, то время ожидания не ограничено.
Значение по умолчанию: 0
<Заголовок> (необязательный)

Тип: Строка.
Содержит заголовок окна предупреждения.
Описание:

Выводит на экран окно предупреждения.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Пример:

Текст = "ru = ""Выберите документ!""; en = ""Select a document!""";
Предупреждение(НСтр(Текст), 10);
3. Епрст (Ёпрст) 16.03.15 09:11
(1,2)
Читаете между строк. Ключевая фраза - "Показ сообщения при свернутой 1С"
help1Ckr; Nik_1c_bitrix; dj_serega; soulsteps; +4 Ответить
4. Сергей Галюк (dj_serega) 16.03.15 09:40
Спасибо. А вдруг пригодиться.

(2) sandybaev, А где в предупреждении есть возможность указать варианты ответа и значка?
Nik_1c_bitrix; +1 Ответить 2
5. Никита Долгих (Nik_1c_bitrix) 16.03.15 10:40
(2) sandybaev, первое, окно предупреждения не модальное и пользователь его легко сможет проигнорировать, выделив любое другое окно приложения, браузера например. второе, это модальное окно Windows, в системе нет функционала для показа модальных окон Windows. третье, прежде чем постить справку на пол экрана, никому здесь не нужную, лучше бы дождались ответа на вопрос.
6. Никита Долгих (Nik_1c_bitrix) 16.03.15 10:42
(4) dj_serega, нет возможности.
7. Алексей (Alexey_) 16.03.15 11:05
(4) dj_serega, варианты ответа можно указать в Вопрос(), значок можно указать, если в Предупреждение() или Вопрос() первым параметром передать ФорматированнуюСтроку (для 8.3.5)
Nik_1c_bitrix; +1 Ответить 1
8. Алексей (Alexey_) 16.03.15 11:08
(5) Nik_1c_bitrix, при свернутой 1С проверял?у меня просто мигает свернутое окно
9. Сергей Галюк (dj_serega) 16.03.15 11:27
(7) Alexey_, У меня 8.3.5. Еще не передавал форматированную строку. Буду теперь знать.
10. Никита Долгих (Nik_1c_bitrix) 16.03.15 12:48
(8) Alexey_, да проверял, еще и звук системный выдает.
11. Dmitry Bas (b-dm) 16.03.15 16:11
Не проверял, но автору респект...
12. ivanov660 ivanov660 (ivanov660) 16.03.15 16:34
Вопрос: а как будет запускаться процедура показа окна при сворачивании или из свернутого режима окна в 1С?
13. Яков Коган (Yashazz) 16.03.15 17:21
Хм. Банальщина, вызывающая лютый восторг у тех, кто ничего не знает даже про vbs и скрипты вообще.
14. Андрей Акулов (DrAku1a) 17.03.15 02:39
Первая строка поста
Для программного нажатия на клавишу необходимо использовать объект Wscript.Shell.
- при чём тут?
А вообще, да. Это для тех, кто не знаком с Windows API, и описывает одну из миллиона функций...
15. Александр Топольский (AlexanderKai) 18.03.15 13:51
Игзперты как всегда негодуют.
16. Илья Вильчик (TreeDogNight) 18.03.15 20:52
А в веб-клиенте нормально будет работать данный метод?
17. Саша Безымяный (help1Ckr) 19.03.15 11:30
(13) Yashazz, Вы не поверите, но многие 1сники пришли в 1с не из программирования. Хорошо это или плохо, это другой вопрос. Вот эти люди могут не знать ничего кроме 1с и подобная информация им очень полезна. Но где Вы увидели "дикий восторг"?)
18. Саша Безымяный (help1Ckr) 19.03.15 23:10
(10) Nik_1c_bitrix, у меня мигает свернутое окно и выдается звук. В центре окна не выпрыгивает. ОС Windows 7, платформа 1С:Предприятие 8.3 (8.3.4.408)
19. г. Казань Рустем Гумеров (Rustig) 26.03.15 08:48
(0) для меня интересней узнать как получить всплывающее сообщение, которое в течение 10 сек становится прозрачным и исчезает с экрана - требовалось под задачу реализации бизнес-процесса "Согласования цен": один менеджер отправляет запрос на согласование скидки, через 2 минуты получает уведомление на свой комп, что скидка и цена согласована руководителем... что-то подобное используется в CRM-решении от Раруса, только код закрыт для просмотра.
20. Андрей Леонов (leoandrei4218) 26.05.15 15:10
(19) Rustig,

ПоказатьОповещениеПользователя(<Текст>, <НавигационнаяСсылка>, <Пояснение>, <Картинка>)

Показывает окно, по умолчанию располагающееся внизу экрана, которое постепенно затухает и исчезает с экрана.
В окне может располагаться ссылка, выбор которой вызывает определенные для ссылки действия (например, открытие формы).

Может что-то вроде этого
21. Юрий Седых (suvolod) 07.05.16 18:50
Под новыми управляемым формами (Такси, 8.3) озвученный в статье способ работает лишь частично. В частности, у меня не отрабатывает "Количество секунд ожидания". Какую-бы цифру не ставил - окно автоматически не закрывается. Если кто-то победил эту проблему, был-бы признателен за рецепт.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа