|
Сообщить на клиенте, в цикле, на форме внешней обработки, в реальном времени.
| ☑ |
0
Oblako486
25.03.21
✎
18:44
|
Почему сообщения копятся, функция сообщить ведь на клиенте?
Как сделать чтобы в реальном времени выводилось?
&НаКлиенте
Процедура ПереподставитьДоговорСчетНаОплату(Команда)
выборкаДокументы = ЗапросСчетов();
для каждого впДокумент из выборкаДокументы цикл
ПереподставитьДоговорСчетНаОплатуНаСервере(впДокумент);
Сообщить(впДокумент) ;
конецЦикла;
КонецПроцедуры
|
|
1
breezee
25.03.21
✎
19:43
|
через шэлскрипты прям виндой говорить)
|
|
2
Oblako486
25.03.21
✎
22:28
|
(1) Вообще вариантов нет?
|
|
3
Юрий Лазаренко
25.03.21
✎
22:33
|
(0) Потому что функция синхронная, она блокирует интерфейс на время своего выполнения. Нужно в реальном времени - используй ПодключитьОбработчикОжидания внутри цикла, в каждом обработчике выполняй ПереподставитьДоговорСчетНаОплатуНаСервере(впДокумент); и Сообщить(впДокумент) ;
|
|
4
asady
25.03.21
✎
22:34
|
(2 интересно а зачем такое требование - чтоб в реальном времени.
Что от этого зависит?
|
|
5
Oblako486
25.03.21
✎
22:38
|
Пользователю непонятно выполняется или зависла. А так можно было бы видеть какой документ обрабатывается. Документов много.
|
|
6
acht
25.03.21
✎
22:40
|
(5) Фоновые операции и сообщение прогресса
|
|
7
hhhh
25.03.21
✎
22:42
|
(5) ну, вы уже сказали пользователю, что Сообщить увеличивает время работы в 10 раз? Оно это ему надо? Ждать лишние полчаса?
|
|
8
Юрий Лазаренко
25.03.21
✎
22:46
|
(6) При фоновых операциях надо за их состоянием на сервер ходить, а это состояние надо где-то хранить. Кроме того, сервер не может уведомить клиента, что документ только что был обработан, поэтому сервер будет опрашиваться с клиента с определенной периодичностью и отображение может перескакивать сразу через несколько документов. Плюс фоновой операции - интерфейс программы не блокируется, можно параллельно работать в программе.
Если на форме делать, то состояние можно хранить непосредственно в реквизитах формы. Событие окончания обработки каждого документа сработает моментально, сообщение отобразится тоже моментально. Минус - интерфейс блокируется на время обработки документа и освобождается только на доли секунды после вывода сообщения и перед переходом к обработке следующего документа, то есть, работать в программе будет невозможно.
|
|