Имя: Пароль:
1C
 
1С8.2 прогрессбар при выполнении на сервере
0 ИШТ
 
23.09.10
17:52
Вообщем вопрос такой, пишу загрузку данных по тонкому клиенту, и основная процедура загрузки выполняется "&НаСервере" пару минут. Как бы показать пользователю что система не померла, в идеале % выполнения конечно же. Как подавать признаки жизни короче из серверной процедуры?
1 shuhard
 
23.09.10
17:53
2 ado
 
23.09.10
17:56
Пихай загрузку в фоновое задание, пусть она какой-нибудь числовой флаг выставляет, из клиента этот флаг проверяй.
3 H A D G E H O G s
 
23.09.10
17:58
НИКАК
4 luns
 
23.09.10
17:59
(2) точно. пусть константу переписывает.
5 ado
 
23.09.10
18:02
(3) А чем (2) не прокатит?
6 ado
 
23.09.10
18:05
(4) Лучше, наверное, параметр сеанса.
7 ИШТ
 
23.09.10
18:06
(1) пройдя по ссылке решения не нашёл. т.е. НИКАК?
(2)(4)(5) это не совсем то что нужно. подождать 5-10...30 минут не проблема. вопрос в том что хочется видеть все это время хотя бы привычную надпись типа: "обработано 1030 строк"
8 shuhard
 
23.09.10
18:06
(4) даешь каждому пользователю по константе
9 shuhard
 
23.09.10
18:06
(7) [пройдя по ссылке решения не нашёл.]
плохо сходил
ПараметрыСеанса + Цикл в форме клиента
10 ИШТ
 
23.09.10
18:07
(9) бегло посмотрел, спасибо щас подумаю...
11 ado
 
23.09.10
18:10
(7) Еще раз. Пусть твоя загрузка запускается в фоновом задании и пишет свое состояние в какой-нибудь параметр сеанса. В форме читаешь состояние этого параметра, и выводишь хош в прогресс-бар, хош куда.
12 mrBlutig
 
23.09.10
18:33
Если можно получить точное количество обрабатываемых строк, то получаешь количество, помещаеш какой нибудь объект в хранилище не сервере, получаешь ссылку на хранилище, а потом порциями обрабатываешь.
13 mrBlutig
 
23.09.10
18:34
если оценить не возможно то только фоновым заданием
14 luns
 
23.09.10
18:48
(8) в (4) стеб если кто не понял ))))
15 shuhard
 
23.09.10
18:50
(14) в (8) подъёбка и все поняли
16 xReason
 
23.09.10
19:00
Вообще 1С надо реализовывать нормальные события. Что бы можно было с сервера на клиент отправлять событие, а клиент должен его ловить и обновлять информацию
17 ado
 
23.09.10
19:11
(16) И как это в веб-клиенте работать будет?
18 BabySG
 
23.09.10
19:13
(0) С сервера на клиента обратиться нельзя.
Только если будете порциями обрабатывать и возвращаться на клиенте, ставить статус и опять на сервер...
Это официальная позиция
19 oleg_km
 
23.09.10
22:47
(17)

а как это в ICQ работает. Протокол TCP/IP вроде двухсторонний.
20 IamAlexy
 
23.09.10
23:11
на ИС был пример
21 ИШТ
 
24.09.10
13:46
тааак, ничего не получилось. Поднимаю тему:
1)как соединить между собой параметры сеанса и тонкий клиент?
2)как создать фоновое задание не изменяя конфы ?
22 ИШТ
 
24.09.10
14:14
UP!
Никогда не использовал ни то, ни другое.
Может я ошибаюсь и действительно можно создать новое фоновое задание не изменив конфигурацию или обращаться к параметрам сеанса из тонкого клиента?
23 ado
 
24.09.10
14:15
(19) >> Протокол TCP/IP вроде двухсторонний

А HTTP?
24 shuhard
 
24.09.10
14:18
(22) ПараметрыСеанса (SessionParameters)
ПараметрыСеанса (SessionParameters)
Является значением свойства глобального контекста ПараметрыСеанса и служит для доступа к значениям параметров сеанса.

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

Сервер, толстый клиент, внешнее соединение.
Возможен обмен с сервером.
25 shuhard
 
24.09.10
14:22
(24) + 1
обрати внимание на альтернативные варианты
нажав кнопку и запустив что-то на стороне сервера, ты не лишен возможности время от времени что-то делать в тонком клиенте
УправляемаяФорма.ПодключитьОбработчикОжидания (ManagedForm.AttachIdleHandler)
УправляемаяФорма (ManagedForm)
ПодключитьОбработчикОжидания (AttachIdleHandler)
Синтаксис:

ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>)
Параметры:

<ИмяПроцедуры> (обязательный)

Тип: Строка. Имя процедуры, подключаемой в качестве обработчика ожидания.
<Интервал> (обязательный)

Тип: Число. Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
<Однократно> (необязательный)

Тип: Булево. Признак однократного выполнения обработчика ожидания.
Истина - указанный обработчик ожидания будет выполнен один раз.
Значение по умолчанию: Ложь
Описание:

Подключает указанную процедуру в качестве обработчика ожидания. Процедура будет вызываться в период ожидания системы каждый раз по истечению указанного интервала времени.

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

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:

Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы ОтключитьОбработчикОжидания.
26 ИШТ
 
24.09.10
14:40
(25) однако он не срабатывает ни разу пока выполняется серверная процедура
27 shuhard
 
24.09.10
14:47
(26) ты проверял или это теория ?
28 ИШТ
 
24.09.10
14:51
проверил. может потомучто сервер и клиент физически одна и таже машина
29 H A D G E H O G s
 
24.09.10
14:59
(28) Потому што обработчик ожидания работает только в режиме ожидания.
30 H A D G E H O G s
 
24.09.10
15:00
Короче, баловство это - поэтому ответ нет.
31 Beagle
 
24.09.10
15:01
В УНФ вроде крутится пиктограммка пока сервер отчет варит. Можно подсмотреть там.
32 ИШТ
 
24.09.10
15:03
(31) не понял, что это, разжуй поподробней, очень хочу посмотреть как
33 Beagle
 
24.09.10
15:12
(32) Управление небольшой фирмой, в тонком клиенте запускаешь формирование отчета с большим количеством данных - появляется окошко Отчет формируется... с анимированной иконкой. Анимация как-то связана с активностью, если "все зависло" - анимация прекращается.
34 jk3
 
24.09.10
17:08
(33) это программно реализовано или платформа сама такое показывает?
35 oleg_km
 
24.09.10
18:15
(23)

Аська как раз по HTTP и работает, вернее по порту 80. было бы желание, а так обратные оповещение еще на Interbase были реализованы
36 RealSaint
 
24.09.10
18:20
(34) Это платформа показывает.
37 ado
 
24.09.10
18:29
(24) Опа, а я и не обратил внимания, что в тонком клиенте не доступно.

Ну, кроме параметров сеанса можно какие-нибудь более другие флаги заюзать.