![]() |
![]() |
![]() |
|
Как передать "клиенту" с "сервера" какое-либо сообщение? | ☑ | ||
---|---|---|---|---|
0
Frol
09.07.07
✎
15:53
|
Ситуация в следующем: во имя увеличения скорости обработки больших массивов информации некая часть исполняемого кода перенесена на сервер 1С в виде отдельной процедуры. Но т.к. сама обработка (даже после переноса исполнения на сервер) достаточно долго выполняется, хотелось бы оповещать пользователя (сообщением или строкой состояния) о том, что обработка не зависла, выполняется и все такое. Есть ли способ передать клиенту, вызвавшему процедуру на сервере подобные сообщения?
|
|||
1
zalexey
09.07.07
✎
16:06
|
Сообщить()
|
|||
2
France
09.07.07
✎
16:16
|
(1) пробовал?
|
|||
3
RomaH
naïve
09.07.07
✎
16:18
|
ИМХО, нет - код хоть и исполняется на сервере, но даже если передашь что-то, то клиен-то в это время занят
|
|||
4
RomaH
naïve
09.07.07
✎
16:20
|
т.е. сообщить и состояние - не катят
а прочитать что-то во время исполнения кода на сервере - не получится |
|||
5
Immortal
09.07.07
✎
16:24
|
и чем это интересно занят клиент?
(я про состояние()) |
|||
6
RomaH
naïve
09.07.07
✎
16:28
|
(5) в каком релизе Состояние на сервере отрабатывает?
|
|||
7
Deteur
09.07.07
✎
16:30
|
(6) Ни в каком
|
|||
8
RomaH
naïve
09.07.07
✎
16:32
|
было предложение использовать подсистему анализа данных
т.е. перед выполнением в РС пишешь входящие параметры, после выполнения - время и в следующий раз - получаешь примерное время выполнения но все-равно все висеть будет т.е. лучшее что получишь средствами 1С это статическую надпись во сколько это все примерно закончится |
|||
9
Immortal
09.07.07
✎
16:38
|
(6) передать на клиента в смысли.
|
|||
10
RomaH
naïve
09.07.07
✎
16:39
|
(9) ну допустим передал - что дальше?
|
|||
11
zalexey
09.07.07
✎
16:43
|
(2) а что вроде работает.
Смотри в УТ общий модуль "УправлениеЗапасамиПартионныйУчет" выполняется только на сервере. Сообщения о том что не списано по партиям пользователь видит. Состояние не прокатывает. Что не так? |
|||
12
Immortal
09.07.07
✎
16:53
|
(10) ну и усё. вот в (11) мысль=)
в том смысле что это конечно же будет прерывание твоей процедуры на серваке, т.к. распараллеливания нету,ну так по другому имхо никак. |
|||
13
vde69
09.07.07
✎
17:01
|
да в общем нет проблемм...
есть довольно много способов, например: в модуле обьекта (например обработки) обьявляем экспортную величину и форму которая должна отрабатывать (например с индикатором) далее перед запуском серверной процедуры запускаем обработчик ожидания куда подключам форму которая берет данные из своего модуля, а на сервер передаем ОБЪЕКТ обработка (не путать с формой) и он там будет менять переменную... зы на 8.1 такое НЕ РАБОТАЕТ! |
|||
14
France
09.07.07
✎
17:02
|
(11) а там не написано "Если Клиент" и все в таком духе?.. глянь внимательно..
|
|||
15
zalexey
09.07.07
✎
17:14
|
(14) нет, только #Если ВнешнееСоединение
Глобальный контекст Сообщить (Message) Синтаксис: Сообщить(<Текст сообщения>, <Статус>) Параметры: <Текст сообщения> (обязательный) Тип: Строка. Текст сообщения. <Статус> (необязательный) Тип: СтатусСообщения. Статус сообщения. Определяет вид пиктограммы. Значение по умолчанию: Обычное Описание: Выводит текст сообщения в окно сообщений. Если в момент вызова окно сообщений отсутствует, то будет открыто новое окно сообщений. Сообщение, в зависимости от его смысловой нагрузки, можно пометить одной из пиктограмм, входящих в предопределенный набор. Нигде не написано, что недоступен на сервере |
|||
16
France
09.07.07
✎
17:20
|
(15) "Описание встроенного языка. Часть 1, стр 1-99" - "недоступен на сервере предприятия"...
|
|||
17
GROOVY
09.07.07
✎
17:29
|
(0) Никак.
|
|||
18
zalexey
09.07.07
✎
23:49
|
(16) завтра на работе проверю... работало же.
|
|||
19
Стальная Крыса
10.07.07
✎
04:07
|
(13) "а на сервер передаем ОБЪЕКТ обработка ..."
интересно как его передать ? :) |
|||
20
RomaH
naïve
10.07.07
✎
07:15
|
а может, того, повесить в трей екзешник какой-нибудь и пусть 1С с сервера передает ему что-нибудь
|
|||
21
oleg_km
10.07.07
✎
09:29
|
В 8.1 реально работает:
Клиент запускает фоновое задание и слушает сокет, а сервер из фонового задания на сокет клиенту пуляет сообщения. Нельзя только снять задание, и то просто не заморачивались, а ток полный асинхрон |
|||
22
Регистратор
10.07.07
✎
09:29
|
можно структурировать код так чтоб вместо одного вызова процедуры она могла вызываться в цикле который выполняется на клиенте и каждый цикл сообщать о состоянии обработки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |