|
Сообщения пользователю из процедур НаСервере | ☑ | ||
---|---|---|---|---|
0
Kongo2019
06.07.21
✎
08:12
|
Доброго
Читаю умный ИТС что совсем меня они запутали. Вариантов больно много. Что сейчас скажем так есть бест-практик? Сообщения пользователю из процедур НаСервере. Пусть будет классический пример. УФ конечно же. Общий модуль. Некоторая процедура с директивой НаСервере. Процедура проверяет отаток. То бишь она вызывается в документе ПриПроведении, ей выгружается табличная часть дока, и она в ответ либо все ок, либо вываливает на пользователя, где чего не хватает. Вот и вопрос, а где и когда сообщать об об этом пользователю? |
|||
1
Вафель
06.07.21
✎
08:13
|
Сообщить прекрасно работает на сервере
|
|||
2
Вафель
06.07.21
✎
08:13
|
Когда управление вернется на клиент, то выведутся все накопленные сообщения
|
|||
3
Kongo2019
06.07.21
✎
08:14
|
(1) Работает, но сообщить типа теперь некошерно использовать.
|
|||
4
Franchiser
гуру
06.07.21
✎
08:14
|
Фз
|
|||
5
Cyberhawk
06.07.21
✎
08:15
|
(3) Если не хочешь Сообщить(), то использую СообщениеПользователю
|
|||
6
Kongo2019
06.07.21
✎
08:17
|
(5) СообщениеПользователю - это уже из БСП же?
|
|||
7
Guk
06.07.21
✎
08:18
|
(6) нет...
|
|||
8
Вафель
06.07.21
✎
08:19
|
(3) кто сказал? Не верь ему
|
|||
9
Почему 1С
06.07.21
✎
08:22
|
(6) Нет, но в БСП тоже есть тюненый вариант ОбщегоНазначенияКлиентСервер.СообщитьПользователю
|
|||
10
Kongo2019
06.07.21
✎
08:23
|
(8) Для вывода сообщений пользователю во всех случаях следует использовать объект СообщениеПользователю, даже когда сообщение не «привязывается» к некоторому элементу управления формы. Метод Сообщить применять не следует.
В ИТС написано вот. |
|||
11
acht
06.07.21
✎
08:23
|
(8) Не выпендривайся.
https://its.1c.ru/db/v8std/content/418/hdoc |
|||
12
Вафель
06.07.21
✎
08:23
|
(9) это для любителей писать код в 1 строку
|
|||
13
Kongo2019
06.07.21
✎
08:23
|
(9) А точно.
При использовании в конфигурации Библиотеки стандартных подсистем рекомендуется использовать процедуру СообщитьПользователю общего модуля ОбщегоНазначения или ОбщегоНазначенияКлиент, которая работает с объектом СообщениеПользователю. |
|||
14
Вафель
06.07.21
✎
08:24
|
Ух ты, не знал.
А кто-нибудь может рассказать в чем разница методов? |
|||
15
ДенисЧ
06.07.21
✎
08:25
|
(14) Каких?
|
|||
16
Вафель
06.07.21
✎
08:26
|
Сообщить и сообщение пользователю без привязки данных.
Хорошо бы конечно на внутреннем уровне, чтобы понимать почему нельзя |
|||
17
ДенисЧ
06.07.21
✎
08:26
|
(16) А разницу между жигулём-копейкой и бэхой 1993года тебе не рассказать?
|
|||
18
ДенисЧ
06.07.21
✎
08:27
|
А что, обе ездят, обе ломаются... Обе даже бензин жрут...
|
|||
19
acht
06.07.21
✎
08:31
|
(16) Сходи на базар... запишись вот сюда https://uc1.1c.ru/course/razrabotka-interfejsa-prikladnogo-resheniya-v-1s-predpriyatii-8-3/#trainer и насилуй ему мозг
|
|||
20
Вафель
06.07.21
✎
08:32
|
Странно что внутри один метод не ссылается на другой
|
|||
21
Вафель
06.07.21
✎
08:33
|
(19) скорее нужно идти на семинар и разработчиков пытать
|
|||
22
acht
06.07.21
✎
08:34
|
(21) Это в очередь записываться надо
|
|||
23
acht
06.07.21
✎
08:35
|
(16) > Хорошо бы конечно на внутреннем уровне
А потом внутренняя реализация поменяется и какой-нибудь Вафель2 начнет задавать дурацкие вопросы заново. |
|||
24
Вафель
06.07.21
✎
08:38
|
Ну раз они пишут вместо этот нужно вот это, то хотелось бы знать причину
|
|||
25
ДенисЧ
06.07.21
✎
09:17
|
(24) Может, ты ещё хочешь знать, почему конфигуратор в .19 вылетает с ошибками? ИЛи почему ,1208 может сломать базу?
А может ты хочешь знать, кто убил Кеннеди?? |
|||
26
fisher
06.07.21
✎
09:17
|
В описании Сообщить() уже давно убрали пометку о том, что его использовать не рекомендуется. ИМХО, его просто допилили до урезанной версии сообщения пользователя, использующей те же механизмы.
То есть с точки зрения платформы его можно смело использовать, КМК. Но так как в типовых везде вывод делается через БСП, то мне ближе точка зрения что Сообщить() удобно использовать для временных отладочных сообщений. Чтобы потом легко их находить и выкашивать. |
|||
27
Вафель
06.07.21
✎
09:21
|
но Сообщить то куда проще написать чем ОбщегоНазначенияКлиентСервер.СообщитьПользователю
|
|||
28
fisher
06.07.21
✎
09:22
|
(27) Да. Поэтому для отладочных и удобно. А для продакшна нужно держаться в общей канве страданий.
|
|||
29
fisher
06.07.21
✎
09:26
|
Когда все единообразно - это дает свои плюшки. А то понадобится тебе привязаться к элементу - и вот у тебя уже зоопарк.
|
|||
30
Вафель
06.07.21
✎
09:36
|
(29) в этом и есть смысл написания программ. когда нужно разный результат набираешь разные буковки
|
|||
31
fisher
06.07.21
✎
09:39
|
(30) А путь дзен-программиста - не плодить сущности без необходимости.
|
|||
32
ДенисЧ
06.07.21
✎
09:41
|
(31) Давно католический монах Оккам перешёл в буддизм? ))
|
|||
33
ildary
06.07.21
✎
09:45
|
(32) а как ему показали конфигуратор 1С, так он сразу и перешёл.
|
|||
34
ДенисЧ
06.07.21
✎
09:46
|
(33) Если бы ему показали _это_ - он давно уже был бы почётным пациентом кащенки...
|
|||
35
kubik_live
06.07.21
✎
10:06
|
(27)
Из УТ11 // Устарела. Следует использовать ОбщегоНазначенияКлиент.СообщитьПользователю или ОбщегоНазначения.СообщитьПользователю |
|||
36
oslokot
06.07.21
✎
10:25
|
Лучше расскажите, как Сообщить() выполненная на сервере, волшебным образом показывает результат на клиенте
|
|||
37
Новиков
06.07.21
✎
10:28
|
(35) хорошая ремарка. На практике я в эту субботу столкнулся не совсем с очевидным поведением механизма сообщений. В модуле обработки в ут, он почему-то отказывался работать.
|
|||
38
Вафель
06.07.21
✎
10:31
|
(36) как я понимаю есть стек сообщений. и сообщить на сервере просто кладет это в стек.
как процедура закончится все это выведется на экран. так же можно отдельно читать этот стек: ПрочитатьСообщенияПользователю |
|||
39
acht
06.07.21
✎
10:50
|
(38) > стек
Очередь. Это очень хорошо объясняет, почему 1Сники не программисты, а конфигурасты. |
|||
40
Fragster
гуру
06.07.21
✎
10:52
|
больше всего бесит, что в УФ не скопировать часть сообщения, а еще все сообщения при закрытии формы теряются
|
|||
41
DrZombi
гуру
06.07.21
✎
10:57
|
(1) Не всегда и не везде.
|
|||
42
DrZombi
гуру
06.07.21
✎
11:00
|
(24) Сообщить не во всех случаях выводит сообщения :)
Вы не забывайте, что ваш Рабочий сервер работает без отладки... |
|||
43
DrZombi
гуру
06.07.21
✎
11:01
|
(25) ДА, пожалуй про сломать базу, а потом, что надо, что бы ее починить :)
|
|||
44
Вафель
06.07.21
✎
11:01
|
(42) примеры в студию
|
|||
45
DrZombi
гуру
06.07.21
✎
11:02
|
(27) Сообщить пользователю позволяет еще:
1. иметь ссылку на элемент формы. 2. Выводить сообщение в том окне УФ, которое вы укажите ;) |
|||
46
acht
06.07.21
✎
11:02
|
(44) Сообщить(Неопределено)
|
|||
47
DrZombi
гуру
06.07.21
✎
11:03
|
(44) Вам можно, хоть трусы на голову одевать :)
|
|||
48
Вафель
06.07.21
✎
11:03
|
(45) а как окно задать?
|
|||
49
DrZombi
гуру
06.07.21
✎
11:04
|
(48) приехали :)))
вот так СообщениеПользователю (UserMessage) ИдентификаторНазначения (TargetID) Использование: Чтение и запись. Описание: Тип: УникальныйИдентификатор. Позволяет точно указать, к какой форме должно быть "привязано" сообщение. Если сообщение не имеет идентификатора назначения, тогда оно выводится и привязывается к активному окну. Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер. Использование в версии: Доступен, начиная с версии 8.2. |
|||
50
DrZombi
гуру
06.07.21
✎
11:05
|
+ БСП так же не позволяет вам указать, форму... почему-то они это не включили в свои поделки :)
|
|||
51
fisher
06.07.21
✎
11:06
|
(49) Одна фигня - из модуля объекта это не работает.
|
|||
52
DrZombi
гуру
06.07.21
✎
11:07
|
(51) Почему и счего бы то было?
Вы в свойствах ГУИД формы передайте, и выводите.... |
|||
53
DrZombi
гуру
06.07.21
✎
11:08
|
А так, это все пишет в активное окно, и порой которого нет еще на форме и которое и не откроется :)
|
|||
54
fisher
06.07.21
✎
11:09
|
(52) > Почему и счего бы то было?
А это не ко мне вопрос, а к разрабам платформы. В серверном контексте формы работает, а из модуля проведения (например) - игнорируется. |
|||
55
DrZombi
гуру
06.07.21
✎
11:09
|
(54) Надо будет проверить :)
|
|||
56
fisher
06.07.21
✎
11:11
|
Другими словами, если захочется выводить сообщения из проведения таким образом, чтобы они выводились пользователю при проведении по ПКМ из формы списка - на тобі дулю, купи собі трактора.
|
|||
57
fisher
06.07.21
✎
11:13
|
Не, вру. В этом случае вроде как раз выведет в активное окно. Не получится при интерактивном проведении из формы, потому что активная форма схлопнется вместе с сообщениями, а переадресовать их не получится.
|
|||
58
Cyberhawk
06.07.21
✎
11:13
|
(56) Если в форме списка, то они и так всегда выводятся, ничего для этого дополнительно делать не нужно
|
|||
59
Cyberhawk
06.07.21
✎
11:14
|
(57) Переадресовать почему не получится? Получаешь в ПослеЗаписиНаСервере или в ПослеЗаписи все накопленное и выводишь с запомненным ранее указателем на нужную форму
|
|||
60
fisher
06.07.21
✎
11:17
|
(59) Хм... Звучит логично.
|
|||
61
fisher
06.07.21
✎
11:18
|
Так даже более расово верно.
|
|||
62
fisher
06.07.21
✎
11:23
|
(59) Если этот вариант рабочий (а звучит как потенциально рабочий) то его можно вообще хоть в БСП засовывать для всех доков. Чтобы если док открыт из формы списка и форма закрывается в результате успешного проведения, то все невыведенные еще сообщения переадресовывать в форму списка.
|
|||
63
Cyberhawk
06.07.21
✎
11:24
|
(62) А где-то в типовых используются сообщения, которые выводятся и вместе с тем не влекут отказ проведения? Зачем они тогда?
|
|||
64
fisher
06.07.21
✎
11:26
|
(63) Информационные. Почему нет? Если не используются, значит и выводить нечего будет. А иначе глупость какая-то получается - "у нас есть сообщение для вашего мальчика, только вот прочитать он его не успеет, потому что у него реакция не та".
|
|||
65
Cyberhawk
06.07.21
✎
13:33
|
(64) Если пользователь нажимает провести и закрыть, то после успешного закрытия формы ему уже пофиг на какие-то там сообщения обычно
|
|||
66
Новиков
06.07.21
✎
14:04
|
(65) нет не пофик, просто бескостыльно после закрытия формы сообщения не вывести.
|
|||
67
Вафель
06.07.21
✎
14:06
|
(65) если это мартышка, которая жмет ок на кассе, то да там ничего не надо.
но бывает разный уровень пользователей |
|||
68
ДенисЧ
06.07.21
✎
14:38
|
(67) Если уровень программиста позволяет ему выводить важные сообщения в окно сообщений - значит так таким пользователям и надо.
|
|||
69
Cyberhawk
06.07.21
✎
16:45
|
(66) Так вроде и не нужно
|
|||
70
fisher
06.07.21
✎
16:49
|
(69) Скажи наркотикам "иногда".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |