|
Можно-ли в УФ, вывести сообщение пользователю, во время проведения? , TryToRun
| ☑ | ||
---|---|---|---|---|
0
atis30
02.05.14
✎
19:27
|
Документ успешно проводится.
Можно-ли вывести пользователю какое-то сообщение, чтобы оно не пропало, одновременно с закрывшимся документом? если да, то как? |
|||
1
Wobland
02.05.14
✎
19:29
|
неужели взять и сообщить?
|
|||
2
ДенисЧ
02.05.14
✎
19:32
|
(1) Мимо. Следующий.
|
|||
3
atis30
02.05.14
✎
19:32
|
(1) попробуй.
|
|||
4
Wobland
02.05.14
✎
19:35
|
||||
5
atis30
02.05.14
✎
19:41
|
(4) Ты проводишь из формы списка?
Попробуй открыть документ, нажать провести и закрыть. |
|||
6
nobody
02.05.14
✎
19:53
|
(0) СообщениеПользователю
|
|||
7
ДенисЧ
02.05.14
✎
19:56
|
СообщениеПользователю (UserMessage)
ИдентификаторНазначения (TargetID) Использование: Чтение и запись. Описание: Тип: УникальныйИдентификатор. Позволяет точно указать, к какой форме должно быть "привязано" сообщение. Если сообщение не имеет идентификатора назначения, тогда оно выводится и привязывается к активному окну. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
8
Chai Nic
02.05.14
✎
19:58
|
(6) Оно покажется в форме, из которой был произведен вызов сервера, если "Провести и закрыть" - то окно сообщений закроется вместе с формой. Вообще мегапроблема - отсутствие глобального окна сообщений.. если с клиентскими процедурами еще есть костыль с привязкой сообщений к общей форме, то с серверными - непонятно что делать..
|
|||
9
su_mai
02.05.14
✎
20:31
|
(0) Можно, только имеет смысл в случае не успешного проведения, когда сам факт проведения не выполнен. В этом случае форма документа не закроется и пользователь увидит сообщение. Для вывода сообщения надо использовать метод СообщениеПользователю. При этом сообщения будут выведены только после завершения серверного вызова.
|
|||
10
GROOVY
02.05.14
✎
20:33
|
(9) Можно и при успешном, нужно только сделать родительское окно активным при выводе сообщения.
|
|||
11
Фокусник
02.05.14
✎
20:35
|
(0) при групповом проведении тоже нужно вывести все 1000+ сообщений?
|
|||
12
su_mai
02.05.14
✎
20:40
|
(10) Технически можно, но зачем? Если документ провелся, то лучше выводить не сообщение, а оповещение пользователю.
|
|||
13
GROOVY
02.05.14
✎
20:51
|
(12) В обработке проведения?
|
|||
14
atis30
02.05.14
✎
20:54
|
(10) а как?
|
|||
15
GROOVY
02.05.14
✎
21:00
|
(14) От куда утащил не помню:
На платформе 1С 8.2, для информирования пользователей, предлагается использовать новый общий объект – СообщениеПользователю. Объект довольно простой, но есть несколько не очевидных особенностей его использования в управляемых формах, которые будут рассмотрены в данной статье. Сразу отметим, что СообщениеПользователю можно использовать как на клиенте, так и на сервере(!). В случае если метод Сообщить() объекта СообщениеПользователю вызывается на сервере, то сообщение будет показано пользователю не сразу, а после того как отработает серверный вызов и управление будет передано обратно на клиент. 1). Использование СообщениеПользователю на клиенте, в форме элемента справочника, документа и других объектов. Для корректного отображения сообщения и его привязки к нужному полю формы, используется нижеследующий код, обратите внимание на инициализацию свойств ПутьКДанным и КлючДанных. &НаКлиенте Процедура СообщитьПользователю(Команда) Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Текст сообщения привязан к полю ИмяПоляФормы"; Сообщение.Поле = "ИмяПоляФормы"; Сообщение.ПутьКДанным = "Объект"; Сообщение.КлючДанных = Объект.Ссылка; Сообщение.Сообщить(); КонецПроцедуры 2). Довольно часто необходимо вывести сообщение в обработке проведения документа, причем не только когда возникла ошибка при проведении, но и в том случае, когда документ успешно проведен. Проблема возникает когда пользователь использует команду “Провести и закрыть”. Сообщение привязывается к окну содержащему форму текущего документа, которое в случае успешного проведения тут же закрывается и пользователь его не видит. Все дело в том что метод Сообщить() объекта СообщениеПользователю выводит сообщение в АКТИВНОЕ окно, документ как правило открывается в дополнительном окне, которое в данном случае и является активным. Таким образом, что бы пользователь смог прочитать сообщение после закрытия формы документа, необходимо перед использованием метода Сообщить() активизировать основное окно управляемого приложения. Один из вариантов – сделать это в событии формы ПередЗаписью(), например так: &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ОкнаКлиентскогоПриложения = ПолучитьОкна(); Для каждого ОкноКлиентскогоПриложения Из ОкнаКлиентскогоПриложения Цикл Если ОкноКлиентскогоПриложения.Основное Тогда ОкноКлиентскогоПриложения.Активизировать(); Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры После этого в обработке проведения можно смело выводить сообщение, теперь оно будет привязано к основному окну, и пользователь сможет прочитать его даже после закрытия формы документа. Процедура ОбработкаПроведения(Отказ, РежимПроведения) // ..... Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Проведен документ " + Ссылка; Сообщение.КлючДанных = Ссылка; Сообщение.Сообщить(); // ..... КонецПроцедуры Предусмотрим случай, когда пользователь воспользовался командой “Провести”, а не “Провести и закрыть”, в этом случае форма документа остается открытой, но не активной, активизируем её: &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) Если НЕ Окно = АктивноеОкно() Тогда Окно.Активизировать(); КонецЕсли; КонецПроцедуры |
|||
16
Sneer
23.05.14
✎
17:43
|
(15) Я так понимаю, что Активизировать() работает только когда включен режим вывода форм отдельных окнах, т.к. когда включен вывод форм в закладках, то сообщение все равно прилепляется к окну текущей закладки и, например, при проведении и закрытии документа выведенные сообщения закрываются тоже.
Интересно, есть какое-нибудь решение кроме открытия специального окна в отдельной закладке для сообщений пользователя и отправки туда сообщений оповещением? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |