Как предпочтительнее предупреждать пользователя?

1. user1194102 13.03.20 08:38 Сейчас в теме
В 1С множество возможных предупреждений пользователя об "опасности"
1. Сообщить (Message)
2. Предупреждение(<ТекстПредупреждения>, <Таймаут>, <Заголовок>)
3. ПоказатьПредупреждение(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>)
подозреваю, что все эти сообщения предназначены для разных способов предупреждения.
Я пока только понял, что п.1 - предупреждение выходит строкой в нижней части экрана.
п2-3 в виде окна с заголовком в окне. Но вот чем отличаются п2 и п.3 не очень понял из СП. А в инете не однозначно это объясняют, можете ли кратко пояснить, в каких случаях какое предупреждение лучше применять?
По теме из базы знаний
Найденные решения
16. herfis 515 13.03.20 10:18 Сейчас в теме
(1) Предупреждение() и Сообщить() были в 8-ке изначально в толстом клиенте.
С появлением требований асинхронности (тонкий клиент и веб) появилось немодальное ПоказатьПредупреждение. По такому же принципу появились немодальные версии и других старых модальных диалоговых вызовов (со словом "Показать" впереди). В тонком клиенте Предупреждение() уже не используют, а если в свойствах конфы стоит запрет использования модальных окон, то использовать его и не получится.
Также с появлением УФ появилось СообщениеПользователю, более функциональное для УФ, чем Сообщить. Его можно выводить в привязке к к данным формы. В целом идея такая: хочешь отдельным окошком, требующим реакции пользователя для продолжения работы - используешь ПоказатьПредупреждение. Хочешь просто выдать сообщение в "консоль" (или не одно, а много сообщений) - используешь СообщениеПользователю (в типовых для удобства есть функция БСП ОбщегоНазначенияКлиентСервер.СообщитьПользователю()
Вот хорошая статья по теме: https://infostart.ru/public/1004554/
user682948_rusmaxval; Elvira_Saydasheva; ilnazio; agentesecreto; __MaxImuS__; VAAngelov; xxart; user1194102; +8 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. ben19791010 13.03.20 09:25 Сейчас в теме
(1)
какое предупреждение лучше применять?
оплеуху или линейку (зависит от уровня опасности) ))
user1194102; +1 Ответить
16. herfis 515 13.03.20 10:18 Сейчас в теме
(1) Предупреждение() и Сообщить() были в 8-ке изначально в толстом клиенте.
С появлением требований асинхронности (тонкий клиент и веб) появилось немодальное ПоказатьПредупреждение. По такому же принципу появились немодальные версии и других старых модальных диалоговых вызовов (со словом "Показать" впереди). В тонком клиенте Предупреждение() уже не используют, а если в свойствах конфы стоит запрет использования модальных окон, то использовать его и не получится.
Также с появлением УФ появилось СообщениеПользователю, более функциональное для УФ, чем Сообщить. Его можно выводить в привязке к к данным формы. В целом идея такая: хочешь отдельным окошком, требующим реакции пользователя для продолжения работы - используешь ПоказатьПредупреждение. Хочешь просто выдать сообщение в "консоль" (или не одно, а много сообщений) - используешь СообщениеПользователю (в типовых для удобства есть функция БСП ОбщегоНазначенияКлиентСервер.СообщитьПользователю()
Вот хорошая статья по теме: https://infostart.ru/public/1004554/
user682948_rusmaxval; Elvira_Saydasheva; ilnazio; agentesecreto; __MaxImuS__; VAAngelov; xxart; user1194102; +8 Ответить
2. platonov.e 161 13.03.20 08:40 Сейчас в теме
Ну как минимум наличием в одном из них оповещения))
user1194102; +1 Ответить
9. user1194102 13.03.20 09:33 Сейчас в теме
(2) Оповещение да , это понятно из текста СП, но оповещение ведь можно не использовать (и кстати я не совсем понял для чего оно и как работает), но еще вычитал, что п.3 открывает окно НЕ модальное и программа не ждет клика пользователя, а выдает сообщение и работает себе дальше, это так? Т.е экономится время выполнения программы
12. platonov.e 161 13.03.20 09:37 Сейчас в теме
(9) 1с уходит от модальности в сторону асинхронности.
Оповещение - это та процедура, которая будет выполнятся после закрытия окна предупреждения. Можно не использовать, можете считать оповещения бонусом к старой функции)
user1194102; +1 Ответить
3. vv2 13.03.20 08:44 Сейчас в теме
Так в СП явно написано.
Предупреждение(<ТекстПредупреждения>, <Таймаут>, <Заголовок>) - это старое модальное плохое предупреждение.

ПоказатьПредупреждение(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>) - это новое асинхронное хорошее предупреждение.
user1194102; +1 Ответить
10. user1194102 13.03.20 09:36 Сейчас в теме
(3) Да я это прочитал и вроде бы понял, но не понял, что делает оповещение в этом случае?
4. DenisCh 13.03.20 08:52 Сейчас в теме
У автора УПП1. А показатьПердупреждение() разве в обычных формах работает?
11. user1194102 13.03.20 09:36 Сейчас в теме
(4) да работает, по крайней мере ошибку не выдает, и в UPP ведь не все формы обычные, часть форм управляемые, хотя конечно в меньшем количестве
14. DenisCh 13.03.20 09:46 Сейчас в теме
(11) Да, проверил. Работает.
user1194102; +1 Ответить
5. yurikmellon 6 13.03.20 08:53 Сейчас в теме
общая тенденция - это отказ от модальных окон
user1194102; +1 Ответить
6. portwein 13.03.20 09:21 Сейчас в теме
Если проще - все, что на обычных формах - "Предупреждение()", все что на управляемых - "Показать предупреждение()" с описанием коллбэка. Потому как "Показать предупреждение" - это отказ от модальности в первую очередь пошедшее из глюков при работе в веб клиенте, который работает на конфигурациях в управляемых формах.
user1194102; +1 Ответить
8. Serega-artem 17 13.03.20 09:29 Сейчас в теме
В принципе всё от задачи зависит. Как по мне, так самое универсальное и простое Сообщить();
user1194102; +1 Ответить
13. user1194102 13.03.20 09:40 Сейчас в теме
(8) ну это на вкус и цвет, как говорится, на сообщение можно не обратить внимание в творческом порыве пользователя
15. Serega-artem 17 13.03.20 09:56 Сейчас в теме
(13) Так я и говорю - от ситуации зависит. Обычно делю такие вещи на два лагеря:

- Нужно просто дать пользователю информацию к размышлению, но не сильно отвлекать его. Для этого подходит Сообщить(); Ну к примеру (из своей специфики) нет цен на какой-то товар в конкретном магазине, используем среднюю по сети. Должны сказать об этом кассиру, но не отвлекать его от работы. Если использовать предупреждение он каждый раз пробивая этот товар будет жать кнопку ОК и терять время. Хотя он и так уже знает, что цены этой нет и сообщил уже об этом куда нужно.

- Нужно чтобы пользователь прям обязательно прочитал информацию и крепко задумался. Тут используется вопрос. Прочитал? Прочитал! понял? Понял! Подтверди. что понял!Если не понял, но подтвердил, при разборе полетов будь готов)
user1194102; +1 Ответить
17. user1194102 13.03.20 10:39 Сейчас в теме
(15) Спасибо, очень понравился ответ, с примерами)
Serega-artem; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот