Как передать "клиенту" с "сервера" какое-либо сообщение? #283121


#0 by Frol
Ситуация в следующем: во имя увеличения скорости обработки больших массивов информации некая часть исполняемого кода перенесена на сервер 1С в виде отдельной процедуры. Но т.к. сама обработка (даже после переноса исполнения на сервер) достаточно долго выполняется, хотелось бы оповещать пользователя (сообщением или строкой состояния) о том, что обработка не зависла, выполняется и все такое. Есть ли способ передать клиенту, вызвавшему процедуру на сервере подобные сообщения?
#1 by zalexey
Сообщить
#2 by France
пробовал?
#3 by RomaH
ИМХО, нет - код хоть и исполняется на сервере, но даже если передашь что-то, то клиен-то в это время занят
#4 by RomaH
т.е. сообщить и состояние - не катят а прочитать что-то во время исполнения кода на сервере - не получится
#5 by Immortal
и чем это интересно занят клиент? (я про состояние)
#6 by RomaH
в каком релизе Состояние на сервере отрабатывает?
#7 by Deteur
Ни в каком
#8 by RomaH
было предложение использовать подсистему анализа данных т.е. перед выполнением в РС пишешь входящие параметры, после выполнения - время и в следующий раз - получаешь примерное время выполнения но все-равно все висеть будет т.е. лучшее что получишь средствами 1С это статическую надпись во сколько это все примерно закончится
#9 by Immortal
передать на клиента в смысли.
#10 by RomaH
ну допустим передал - что дальше?
#11 by zalexey
а что вроде работает. Смотри в УТ общий модуль "УправлениеЗапасамиПартионныйУчет" выполняется только на сервере. Сообщения о том что не списано по партиям пользователь видит. Состояние не прокатывает. Что не так?
#12 by Immortal
ну и усё. вот в мысль=) в том смысле что это конечно же будет прерывание твоей процедуры на серваке, т.к. распараллеливания нету,ну так по другому имхо никак.
#13 by vde69
да в общем нет проблемм... есть довольно много способов, например: в модуле обьекта (например обработки) обьявляем экспортную величину и форму которая должна отрабатывать (например с индикатором) далее перед запуском серверной процедуры запускаем обработчик ожидания куда подключам форму которая берет данные из своего модуля, а на сервер передаем ОБЪЕКТ обработка (не путать с формой) и он там будет менять переменную... зы на 8.1 такое НЕ РАБОТАЕТ!
#14 by France
а там не написано "Если Клиент" и все в таком духе?.. глянь внимательно..
#15 by zalexey
Синтаксис: Сообщить(<Текст сообщения>, <Статус>) Параметры: <Статус> (необязательный) Тип: СтатусСообщения. Статус сообщения. Определяет вид пиктограммы. Значение по умолчанию: Обычное Описание: Выводит текст сообщения в окно сообщений. Если в момент вызова окно сообщений отсутствует, то будет открыто новое окно сообщений. Сообщение, в зависимости от его смысловой нагрузки, можно пометить одной из пиктограмм, входящих в предопределенный набор. Нигде не написано, что недоступен на сервере
#16 by France
"Описание встроенного языка. Часть 1, стр 1-99" - "недоступен на сервере предприятия"...
#17 by GROOVY
Никак.
#18 by zalexey
завтра на работе проверю... работало же.
#19 by Стальная Крыса
"а на сервер передаем ОБЪЕКТ обработка ..." интересно как его передать ?  :)
#20 by RomaH
а может, того, повесить в трей екзешник какой-нибудь и пусть 1С с сервера передает ему что-нибудь
#21 by oleg_km
В 8.1 реально работает: Клиент запускает фоновое задание и слушает сокет, а сервер из фонового задания на сокет клиенту пуляет сообщения. Нельзя только снять задание, и то просто не заморачивались, а ток полный асинхрон
#22 by Регистратор
можно структурировать код так чтоб вместо одного вызова процедуры она могла вызываться в цикле который выполняется на клиенте и каждый цикл сообщать о состоянии обработки
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С