Имя: Пароль:
1C
1С v8
Показать Состояние() из процедуры общего серверного модуля
0 Pro-tone
 
26.01.12
16:25
На управляемой форме по нажатию на кнопку вызывается процедура общего серверного модуля, которая делает в цикле какие действия.

Хотелось бы красиво сделать индикацию этого процесса, да вот незадача, процедура Состояние() не определяется серверном модуле.

Как быть ?
Я так понимаю на клиент надо слать текущее значение счетчика цикла, а состояние() ставить в самой форме на клиенте. Но как такое сделать ?
1 andrewks
 
26.01.12
16:26
обрабатывай на сервере порциями
2 ДенисЧ
 
26.01.12
16:28
(0) не на клиент, а на сервер. И не текущее значение счётчика, а текущее задание...
Правда, при тонком канале это будет весело... А при веб-формах - так вообще развлечение...
3 Pro-tone
 
26.01.12
16:32
(2) вопрос быстродействия - не критичен, данная операция будет производиться редко и мало времени занимает

про задание не понял, как и куда слать


&НаКлиенте
Процедура СнихронизироватьСБП(Команда)
   
    ЛогистикаСервер.СинхронизироватьПланСчетов();
    ПоказатьОповещениеПользователя("Синхронизация", ,"План счетов загружен из ""1С:Бухгалтерия""", БиблиотекаКартинок.Синхронизация);

КонецПроцедуры


как вот в таком случае сделать индикацию того что творится в  ЛогистикаСервер.СинхронизироватьПланСчетов();  ?
4 ДенисЧ
 
26.01.12
16:35
разбить процедуру синхронизации на известное количество шагов и ЛогистикаСервер.СделатьОчереднойШагСинхронизации()
5 Pro-tone
 
26.01.12
16:46
(4) эээ, я думал может как-нибудь проще можно, наверно придется обойтись без красоты

вообще странно, с клиента на сервер можно переслать с клиентского контекста данные, а вот переслать с серверного контекста обратно нельзя, можно лишь возвращать функцией и это как-то неинтересно
6 pumbaEO
 
26.01.12
16:59
ну глядишь, когда все внедрят web сокеты и 1С как нибудь, через n- лет добавит, тогда сможешь с сервера на клиенте вызывать ...
7 Pro-tone
 
26.01.12
17:29
(6) =:(