Имя: Пароль:
1C
1С v8
Вывод сообщения в управляемом приложении при проведении дкоумента
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)Спасибо, был неправ, думая, что ты не понял.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан