|
Вывод сообщения в управляемом приложении при проведении дкоумента | ☑ | ||
---|---|---|---|---|
0
simol
09.09.15
✎
12:56
|
Речь про УФ.
В ПередЗаписью модуля документа хочу выводи сообщения пользователю. Но если пользователь нажимает "Провести и закрыть", то сообщения пропадают вместе с закрытием формы дкоумента. Как вывести сообщения отвязанные от формы? |
|||
1
Брегорьян
09.09.15
✎
12:56
|
показать оповещение пользователя?
|
|||
2
simol
10.09.15
✎
13:11
|
(1)такие сообщения тоже убираются при закрытии формы заказа.
|
|||
3
yam
10.09.15
✎
13:12
|
Никак
|
|||
4
alkorolev
10.09.15
✎
13:12
|
(1) это клиентское событие
|
|||
5
alkorolev
10.09.15
✎
13:12
|
помоэет старый добрый "Сообщить"
|
|||
6
simol
10.09.15
✎
13:12
|
(5)Сообщить тоже убирается
|
|||
7
simol
10.09.15
✎
13:13
|
(3)А как оповестить пользователя при проведении, если он делать "провести и закрыть"?
|
|||
8
alkorolev
10.09.15
✎
13:13
|
ну тогда поможет оповещение в динамическом списке
|
|||
9
yam
10.09.15
✎
13:13
|
Тоже никак.
Можно убрать кнопку провести и закрыть, если уж очень надо. |
|||
10
alkorolev
10.09.15
✎
13:16
|
(9) в итоге то вернемся к списку документов, которому можно оповестить все, что угодно
|
|||
11
Fedor-1971
10.09.15
✎
13:23
|
(0) Давненько попадался подобный вопрос, идея решения была следующей: перед выводом сообщения выбрать активным окном рабочий стол, он то уж точно не закроется. На сколько помню, использовался массив (список) открытых окон, 0 окно и есть рабочий стол.
|
|||
12
simol
10.09.15
✎
13:30
|
(11)Спасибо за идею.
|
|||
13
simol
10.09.15
✎
22:28
|
||||
14
palsergeich
10.09.15
✎
23:05
|
Если нет модуля формы (програмная работа с объектом без формы) то никак. (Вариант с исключением не предлагать).
Если есть форма то можно, но геморройно, а почему именно в модуле документа? какой тайный смысл делать там сообщение? |
|||
15
palsergeich
10.09.15
✎
23:07
|
почему не сделать ПоказатьОповещенияПользователя в обработчике ПередЗаписью модуля формы?
|
|||
16
palsergeich
10.09.15
✎
23:12
|
(11) Если передавать сообщение из модуля объекта, то оттуда вы не можете манипулировать окнами клиента. Это возможно только на клиентской части формы. А если есть клиентская часть, то проще ПоказатьОповещенияПользователя
|
|||
17
simol
10.09.15
✎
23:24
|
(15) При проведении документа любым способом по заданным правилам может произойти изменение реквизитов. О факте изменения хочу оповещать пользователя.
При Провести и закрыть он не успевает их прочитать. |
|||
18
palsergeich
10.09.15
✎
23:29
|
менять реквизиты документа при проведении, да вы мазохист батенька. А потом будут звонить и вопить, я ставил контрагент1, а у меня в документе Контрагент2, ваш 1с нерабтает и тд. почему не поменять реквизиты ПЕРЕД записью или После? а не во время?
|
|||
19
simol
10.09.15
✎
23:30
|
Если вывести два ПоказатьОповещенияПользователя, то первое уже не видно, видно только второе
|
|||
20
simol
10.09.15
✎
23:31
|
(18) Кто сказал, что в ОбработкеПроведения. Разумеется меняются в ПередЗаписью.
|
|||
21
simol
10.09.15
✎
23:35
|
(18) Пусть например нужно оповещение пользователя, что не найдена партия при проведении. Так было в старых конфах.
|
|||
22
palsergeich
10.09.15
✎
23:35
|
ММММ, а почему не сделать как где то в типовой видел, добавяется реквизит на форму, при нажатии провести выскакивает ПоказатьПредупреждение (в модуле передЗаписью по значению нового реквизита формы ставится отказ = Истина) со списком изменений, если надо просто пользователя ознакомить, то можно с одной кнопкой. После нажатия реквизит програмно меняется вызывается програмная запись, с Отказ = ЛОЖЬ.
Все счастливы и довольны |
|||
23
palsergeich
10.09.15
✎
23:37
|
Старые конфы были на толстом клиенте. ПередЗаписью - транзакция начата. Показ модального окна в транзакции - то за что в приличном обществе бьют по рукам)
|
|||
24
simol
10.09.15
✎
23:38
|
(23)Кто говорил про модальное окно?
|
|||
25
simol
10.09.15
✎
23:40
|
(22) Нужно оповещение одинаковое как при интерактивном проведении документа, так и при, например, проведении через обработку. С ПоказатьПредупреждение при проведении обработкой не сработает
|
|||
26
GROOVY
10.09.15
✎
23:43
|
Уже же сказали, нужно получить основное окно приложения (а ля рабочий стол) и выводить сообщение там, потом сделать активным опять форму, если она была.
|
|||
27
palsergeich
10.09.15
✎
23:44
|
как вы это сделаете при неинтерактивном проведении?
|
|||
28
palsergeich
10.09.15
✎
23:47
|
если только передЗаписью в модуле обработки переключаться на рабочий стол что то типо Такого:
ВсеОкна = ПолучитьОкна(). РабСтол = ВсеОкна[0]; РабСтол.Активизировать(); и СообщенияПользователю в модуле объекта выводить. Тогда да. |
|||
29
simol
10.09.15
✎
23:51
|
(27) что именно? Вот берем старую конфу на обычных формах. при проведении реализации любым способом программно, интерактивно с закрытием документа, интерактивное без закрытии, однотипно сообщалось о том, что партий не хватило.
Ищу аналог для УФ (28) Модуль объекта на сервере, там к сожалению нет окон |
|||
30
simol
10.09.15
✎
23:52
|
(26) В модуле объекта нет форм. А если перенести в модуль формы, то при программном проведении сообщений не будет.
|
|||
31
simol
10.09.15
✎
23:52
|
+(30) ...нет окон....
|
|||
32
palsergeich
10.09.15
✎
23:54
|
НеинтерактивноеПроведение инициируется все равно с клиента это раз.
в процедуре ПередЗаписью той обработки, где вы запускаете неинтерактивное проведение это 2; В процедуре ПередЗаписью модуля формы того документа, что бы и при интерактивном проведении это работало Это 3 СообщениеПользователю с сервера идут на клиент при окончании серверного вызова это 4 |
|||
33
simol
10.09.15
✎
23:56
|
(32) Я хочу выводить сообщения из ПередЗаписью Модуля объекта. Он гарантированно отрабатывает при интерактивнои и программном проведении. А там нет окон, чтобы сменить активное.
|
|||
34
simol
10.09.15
✎
23:58
|
(32) Наверно путаница с интерактивным/программным. В моем контексте интерактивное - открыли документ и нажали "Провести и закрыть". Программное - обработкой перепровели.
|
|||
35
palsergeich
11.09.15
✎
00:04
|
я же сказал, для этого придется потрудится:
Если в модуле формы событие ПередЗаписью - Клиентское, в нем можно переключить основное окно. Не важно какой формы - документа или обработки. В обе вставляем код ВсеОкна = ПолучитьОкна(). РабСтол = ВсеОкна[0]; РабСтол.Активизировать(); это переключит основное окно на рабочий стол. А в модуле объекта при нужных действиях Выводим СообщениеПользователю, которые при завершении серверного вызова вернутся на клиент и будут отображены на текущем аткивном окне, а именно рабоче столе. |
|||
36
simol
20.09.15
✎
22:34
|
(35)Спасибо, был неправ, думая, что ты не понял.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |