Имя: Пароль:
1C
 
Сообщить дополнительную информацию при успешном проведении?
0 Fragster
 
гуру
27.03.15
18:06
Как при использовании режима такси при нажатии на кнопку "провести и закрыть" и успешном проведении сообщить что-нибудь пользователю?

вот этот способ не работает: v8: Можно-ли в УФ, вывести сообщение пользователю, во время проведения?
1 Drac0
 
27.03.15
18:18
(0) Сообщить выводит в закрываемую форму?
2 Fragster
 
гуру
27.03.15
18:23
(1) ага
3 Гёдза
 
27.03.15
18:26
А СообщениеПользователю?
4 Fragster
 
гуру
27.03.15
18:30
(3) то же самое
5 Остап Сулейманович
 
27.03.15
18:31
(0) "Горбатый" способ есть здесь : http://www.obrabotki.com/1s-usermessage-managedforms/ п.2 "Горбатость" в четвертом комментарии.
6 zak555
 
27.03.15
18:32
СообщениеПользователю (UserMessage)
ИдентификаторНазначения (TargetID)
Использование:

Чтение и запись.
Описание:

Тип: УникальныйИдентификатор.
Позволяет точно указать, к какой форме должно быть "привязано" сообщение. Если сообщение не имеет идентификатора назначения, тогда оно выводится и привязывается к активному окну.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
7 Drac0
 
27.03.15
18:32
(2) тогда открывай свою форму для вывода сообщений, куда параметром передавай сообщения.
8 Fragster
 
гуру
27.03.15
18:32
(7) подскажи, как мне это сделать в обработке проведения?
9 Drac0
 
27.03.15
18:33
(6) и этот вариант еще :) Но своя форма больше по нраву.
10 Drac0
 
27.03.15
18:34
(8) раз выводится в закрываемую форму, значит есть событие на клиенте, т.е. ПослеЗаписи или ПередЗакрытием
11 Fragster
 
гуру
27.03.15
18:34
(6) подскажи, как определить ИдентификаторНазначения в обработке проведения?
12 Fragster
 
гуру
27.03.15
18:36
гыгы! не работает... сделал через вот так:
13 Drac0
 
27.03.15
18:36
(11) передай его через допсвойства
14 Fragster
 
гуру
27.03.15
18:37
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если ТипЗнч(ВладелецФормы) = Тип("УправляемаяФорма") Тогда
        УИРодительскогоОкна = ВладелецФормы.УникальныйИдентификатор;
    ИначеЕсли ТипЗнч(ВладелецФормы) = Тип("ТаблицаФормы") Тогда
        Пока Истина Цикл
            ВладелецФормы = ВладелецФормы.Родитель;
            Если ТипЗнч(ВладелецФормы) = Тип("УправляемаяФорма") Тогда
                УИРодительскогоОкна = ВладелецФормы.УникальныйИдентификатор;
                Прервать;
            ИначеЕсли ВладелецФормы <> Неопределено Тогда
                УИРодительскогоОкна = Неопределено;
                Прервать;
            КонецЕсли;
        КонецЦикла
    Иначе
        УИРодительскогоОкна = Неопределено;
    КонецЕсли;
КонецПроцедуры
15 Fragster
 
гуру
27.03.15
18:38
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    ТекущийОбъект.ДополнительныеСвойства.Вставить("УИРодительскогоОкна", УИРодительскогоОкна);
КонецПроцедуры
16 Fragster
 
гуру
27.03.15
18:39
в обработке проведения:


        УИРодительскогоОкна = Неопределено;
        ДополнительныеСвойства.Свойство("УИРодительскогоОкна", УИРодительскогоОкна);
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = Текст;
        Сообщение.УстановитьДанные(Ссылка);
        Сообщение.ИдентификаторНазначения = УИРодительскогоОкна; // УИ в отладчике заполнен!!!
        Сообщение.Сообщить();
17 Fragster
 
гуру
27.03.15
18:39
и ничего не выводится
18 Fragster
 
гуру
27.03.15
18:39
и в УИРодительскогоОкна попадает именно УИ формы списка
19 fisher
 
27.03.15
18:42
(8) А зачем в обработке проведения? Почему не в ПослеЗаписи() в форме?
20 Fragster
 
гуру
27.03.15
18:44
(19) потому что сообщение должно выводиться при проведении из формы списка, при проведении из формы документа, при проведении из пары-тройки обработок-рабочих мест
21 Fragster
 
гуру
27.03.15
18:45
при программном проведении из консоли запросов тоже неплохо бы сообщение вывести
22 zak555
 
27.03.15
18:46
запихнул на рабочий стол форму, её уид сохранил в параметрах сеанса и тоже из проведения ничего не выводит

странно
23 Drac0
 
27.03.15
18:47
(16) зачем УстановитьДанные?
24 fisher
 
27.03.15
18:51
(20) А для этого, думаю, придется переопределять стандартные команды в нужных местах. Рассылать из модуля объекта сообщения и оповещения, ИМХО, не получится.
25 fisher
 
27.03.15
18:53
Я так смекаю, что модуль исполняется в контексте, который изолирован от оконной модели.
26 Fragster
 
гуру
27.03.15
19:13
короче, выходит что-то типа РС с номером сеанса и сообщением и глобальным обработчиком ожидания
27 Fragster
 
гуру
27.03.15
19:13
но это извращение
28 pumbaEO
 
27.03.15
19:13
Переходи к событийной модели, подписка и подписчики + обработка сообщений.
29 Fragster
 
гуру
27.03.15
19:14
(28) нарисуй пустой .cf с одним документом и этой самой моделью, а? если уж стандартный функционал в (22) и (14)(15)(16) с идентификатором назначения не работает
30 Fragster
 
гуру
27.03.15
19:15
(26) а из-за серверного вызова еще и подергивания интерфейса, что не айс
31 pumbaEO
 
27.03.15
19:15
(27) почему это извращение? Подними rabitmq, тогда это будет извращение, храни данные в redis - тогда это будет извращение. (Большинство тебя не поймут, но я лайкну).
32 fisher
 
30.03.15
08:56
(26) Да ну. Овчинка выделки не стоит. Да и не во всех же случаях нужно выводить оповещения. Т.е. универсальность надуманная. ИМХО, логичнее и проще переопределить команды проведения в нужных формах списков и где там еще надо.
33 Drac0
 
30.03.15
09:24
(20) Ты же сам противоречишь задаче в (0).
34 Fragster
 
гуру
30.03.15
09:34
(33): (0) - это следствие из (20). В обычных формах было окно сообщений, в которое падали все сообщения и для (20) достаточно было написать Сообщить() в обработке проведения. В УФ этот подход не работает для случая, когда мы проводим документ кнопкой "провести и закрыть"
35 fisher
 
30.03.15
10:13
(17) Потыкался-помыкался - вообще в Такси не получается вывести сообщение не в активное окно. То ли недопилили, то ли для Такси "ИдентификаторНазначения" - атавизм.
36 Drac0
 
30.03.15
10:40
(35) Похоже, что не допилили. 8.3.5.1383 УФ, не Такси тоже не работает.
37 User_Agronom
 
30.03.15
10:45
(0) Создавай текстовый временный файл и открывай его блокнотом))
38 ЧеловекДуши
 
30.03.15
10:48
(20) Не пойму вашей проблемы. При проведении из списка вообще всегда выводится.
А вот проведении из Диалога, не выводится, т.к. форма при этом закрывается. Т.е. попросту вывести некуда.
...
Можно начать использовать "ОбработкаОповещения"...
Или можно организовать некий параметр сеанса, который бы содержал список сообщений. И обрабатывался при определенном событии. Даже той же форма списка.
39 ЧеловекДуши
 
30.03.15
10:49
(37) Хороший вариант, главное всегда есть лог сообщений :)
40 ЧеловекДуши
 
30.03.15
10:49
(35) Это особенности УФ
41 ЧеловекДуши
 
30.03.15
10:51
+(38) Можно при закрытии Формы документа, открывать окно "Сообщений", в которое и будут выводиться все сообщения.

При этом окно можно сделать "глобальным", т.е. если открыто, то использовать его. Если закрыто, то открыть и вывести сообщения пользователю.

Выводить только из диалогов форм документа, и только при закрытии формы :)
42 Drac0
 
30.03.15
10:53
(38) (40) В данном случае это именно баг платформы. ИдентификаторНазначения и сделан именно для этой ситуации. Просто он тупо не работает.
43 fisher
 
30.03.15
11:09
(40) Объект "СообщениеПользователю" о котором речь - он как бы спецом для УФ и создавался.
44 jk3
 
01.04.15
10:04
(0) Получилось сделать?
45 Fragster
 
гуру
01.04.15
10:15
(44) нет