Имя: Пароль:
1C
1С v8
Управляемые формы и сообщения в них
0 Alexey vip
 
09.04.13
20:12
Кто знает, как можно получить текст сообщений в форме?
Например хочется, мне чтобы после нажатия кнопочки "провести и закрыть" информационные сообщения копировались перед закрытием формы и писались в основном окне на рабочем столе.
Гугл выдает фигню. Это вообще возможно?
1 banco
 
09.04.13
20:20
ПоказатьОповещениеПользователя?
2 Alexey vip
 
09.04.13
20:23
Описание:

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

это покажет то, что я задам.
А мне нужно как-то получить сообщения уже выведенные на форме.
3 banco
 
09.04.13
20:29
(2) так сразу выводи в оповещение, а не на форму
4 Alexey vip
 
09.04.13
20:32
(3)
На сервере этот метод не доступен
5 Alexey vip
 
09.04.13
20:35
И вообще, это формачка внизу не сильно большая и много туда информации не написать
6 Alexey vip
 
09.04.13
21:10
Оказывается никак не получить.
7 SeregaMW
 
09.04.13
21:17
(0) Чисто теоретически записывать сообщение во временное хранилище, а потом от туда его читать!?
8 SeregaMW
 
09.04.13
21:38
Загляните сюда, кому не сложно
http://dev.mista.ru/topic.php?id=660262
9 EvgeniuXP
 
09.04.13
21:48
(0) оповещай и выгружай в другую форму и читай.
10 Alexey vip
 
09.04.13
22:30
(7) сейчас посмотрю
(9) в обработке проведения (на сервере) нельзя открыть другую форму.
11 EvgeniuXP
 
09.04.13
22:36
(10) а ты ее заранее открой.
12 EvgeniuXP
 
09.04.13
22:37
или после окончания "на сервере", если есть ошибки открывай и все сообщения передавай.
13 Alexey vip
 
09.04.13
22:46
(11) что-то вроде, что перед записью на форме открыть какую нить форму и затем сделать его активным и напхать туда сообщений?
Не пойдет и не сильно отличается от юзаемого мною метода. Хочется безо всяких выкрутасов.
(12) не совсем понял, это как?
14 EvgeniuXP
 
09.04.13
22:59
(13) клиент же вызывает сервер, т.е. сервер заканичает свою работу и возвращает массив сообщений, в клиенте открываем форму и передаем этот массив в качестве параметра, а там выгрузка на форму.
15 Alexey vip
 
09.04.13
23:02
(14) Я наверное, не совсем правильно выразился. Информационные сообщения выдаются в момент проведения. То есть в обработке проведения. Сам по себе это сервер, но возврата на клиент нет. Насколько я знаю, конечно.
16 Alexey vip
 
09.04.13
23:03
(7) Опять же, не понятно, как передавать адрес хранилища из обработки проведения хоть-куда нибудь.
17 EvgeniuXP
 
09.04.13
23:04
(15) с другой стороны, зачем тогда эти сообщения, если документ нормально провелся?
18 Alexey vip
 
09.04.13
23:07
(17) Информационные. В одном случае человек с одними правами сможет провести.  В другом случае, человек без прав не проведет. Но сообщения должны увидеть оба.
19 alexei366
 
09.04.13
23:07
Думаю покапай в сторону СообщениеПользователю, вроде есть метод ПолучитьСообщенияПользователю, типа сервер их создал, а на клиенте их помно получить. Но я могу и ошибаться.
20 EvgeniuXP
 
09.04.13
23:10
попробуй в дополнительные свойства объекта сложить сообщения при проведении, а там где проводишь вытащи их:

Документ.Записать(РежимПроведения.Провести)
МассивСообщений = Документ.ДополнительныеСвойства; - может что и получится.
21 Alexey vip
 
09.04.13
23:17
(19) Оно выводит только не показанные сообщения. А как написать сообщение и не вывести его?
(20) Попробую. Вроде может чего получится.
22 EvgeniuXP
 
09.04.13
23:20
(21) не вызывай функцию Сообщение.Сообщить() :)
23 EvgeniuXP
 
09.04.13
23:33
Если роль такая, то выводим, если другая - то не выводим.
24 Alexey vip
 
09.04.13
23:36
(22) не получится
ПолучитьСообщенияПользователю()
Доступность:

Сервер, толстый клиент, внешнее соединение.

на форме не вызвать.

(23) Оба человека должны видеть сообщения. Это точно.
25 EvgeniuXP
 
09.04.13
23:55
(24) по-моему, пользователь просто их читать не будет (надоест), более того, он еще и привыкнет к этому и вообще не будет реагировать даже на другие.
26 Alexey vip
 
09.04.13
23:55
(20) ДополнительныеСвойства на форме не доступны.
неужели придется создавать реквизит и через него передавать сообщения?
27 Alexey vip
 
09.04.13
23:57
(25) В принципе, ты прав. Но... Задача есть задача)
28 EvgeniuXP
 
10.04.13
00:00
(26) на форме понятно, что не доступно.

&НаКлиенте
Процедура ПровестиДокумент()
МассивСообщений = ПровестиНаСервере();
КонецПроцедуры

&НаСервере
Функция ПровестиДокументНаСервере(Док)

  ДокОбъект = Объект.Ссылка.ПолучитьОбъект();
  ДокОбъект.Записать(режимпроведения.Провести);

  Возврат ДокОбъект.ДополнительныеСвойства; - выгрузи в массив и его верни


КонецФункции
29 EvgeniuXP
 
10.04.13
00:01
еще записать в попытку заключить, при проведении заполняй допсвойства объекта.
30 EvgeniuXP
 
10.04.13
00:04
в команду документа, и на всех формах вставляй эту команду.
31 Alexey vip
 
10.04.13
00:07
(28) не догнал, что объект нужно получить.

(30) тогда уж подписку на событие и общую команду. Но идея рабочая. Большое спасибо.