Имя: Пароль:
1C
1С v8
Отображение прогресса длительной операции (Мобильный клиент)
0 CerbeRUS
 
18.03.15
17:23
В мобильном приложении есть процесс, который занимает длительное время.
Хочу выводить на экран процент выполнения.
Сделал весь код на клиенте, пробовал менять реквизит формы, заголовок формы, заголовок декорации - вид обновляется только после окончания выполнения кода.
Получается, надо запускать это все в фоновое задание, а обработчиком ожидания получать процент выполнения. Но как это сделать, если в МП нет объекта Состояние?
Какие есть решения, не подскажите?
1 fisher
 
18.03.15
17:27
Да хоть псевдографикой.
2 fisher
 
18.03.15
17:28
"||||||||||||           "
3 CerbeRUS
 
18.03.15
17:32
Проблема не отображения, а получения данных о проценте выполнения из фонового задания. Внутри фонового задания процент я рассчитать могу. А как его на форме узнать?
4 fisher
 
18.03.15
17:37
Упс. Таки да, проблема. ПолучитьСообщенияПользователю() на МП не работает...
5 fisher
 
18.03.15
17:39
Тогда изврат какой-нить придумывать придется. Через файлики, например.
6 CerbeRUS
 
18.03.15
17:41
Да, думал про файлики - изврат. Константа - меньший, но тоже изврат.
Какие еще есть переменные, доступ к которым можно получить, что на сервере, что на клиенте? Параметры сеанса?
7 rphosts
 
18.03.15
17:42
(3)пользоваться реквизитом формы религия запрещает?
8 rphosts
 
18.03.15
17:42
(6)через параметры - это изврат но тоже годно
9 mikecool
 
18.03.15
17:44
(7) а какие реквизиты формы у фонового?
10 rphosts
 
18.03.15
17:45
(9) контекст(форму) туда разве нельзя передать? Хотя это больший изврат чем параметр сеанса
11 mikecool
 
18.03.15
17:46
(10) фоновое может и регламентом пуститься, как бы это совсем изврат
12 33_оленя
 
18.03.15
17:48
чеза процесс? тупо поржать.
13 fisher
 
18.03.15
17:48
(6) Через файлики, ИМХО, наименьший изврат. Быстро и масштабируемо. Константа и параметр сеанса - это если ограничиваться однозадачностью. В противном случае придется через хранилище значений работать, что вообще грустно. Особенно если в константе.
14 CerbeRUS
 
18.03.15
17:50
(7) Да был бы только рад в реквизите формы процент хранить. Но как форму в фоновом задании получить?
15 fisher
 
18.03.15
17:50
(13) + Плюс будет гемор с конкурентным доступом при многозадачности.
16 CerbeRUS
 
18.03.15
17:52
(12) да чего ржать, получение данных с сайта. В зависимости от объема данных и скорости инета это может занимать до пять минут.
17 rphosts
 
18.03.15
17:54
(13) да ну нафиг, ты как себе представляешь несколько одновременно работающих фоновых на мобильном клиенте?

Потом хранить в Параметрах сеанса ТЗ или структуру никто не запрещает (возможно через ХЗ)
18 CerbeRUS
 
18.03.15
17:54
(13) Ну, пока я не представляю, где там можно масштаб увеличить, но мало ли...
Интересно, что по времени быстрее: из параметрасеанса, константы данные получать или из файла на ус-ве читать?
19 banco
 
18.03.15
17:57
храни статистику выполнения процесса и покажи приблизительно время выполнение.
20 rphosts
 
18.03.15
17:58
+ (17) опять-же мобильный клиент - по сути файловая база а для неё ограничение - не более одного одновременно работающего фонового, т.е. нет никаких проблем с конкурентным доступом
21 rphosts
 
18.03.15
17:58
(18) параметры быстрее всего
22 fisher
 
18.03.15
18:00
(20) Не знал про это ограничение. Тогда параметр сеанса лучше всего подходит.
23 CerbeRUS
 
18.03.15
18:01
(21) в смысле - параметр сеанса?
24 CerbeRUS
 
18.03.15
18:02
Тоже к ПС склоняюсь. Единственное, вызов сервера каждую секунду будет.
Хотя, правда, я вообще пока еще плохо понимаю, где на телефоне клиент и сервер.
25 fisher
 
18.03.15
18:07
(24) Даже если у 1С нет никакой оптимизации "клиент-сервера" в локальном варианте, то ты же будешь вызов без передачи контекста делать. А кроме контекста какие локально могут быть накладные расходы?
26 rphosts
 
18.03.15
18:07
(24) там-же где и клиент но есть клиент и эмуляция сервера
27 CerbeRUS
 
18.03.15
18:08
(25) Вроде бы никаких, а так кто эту 1С знает...
28 CerbeRUS
 
18.03.15
18:10
(26) Вот я и не совсем понимаю, зачем клиент-сервер эмулировать.
Но это уже философский вопрос...
С другой стороны, есть совместимость с настольным приложением.
29 Провинциальный 1сник
 
18.03.15
18:12
Сейчас прогресс-бары немодны. Сейчас модно воспитывать в пользователе терпееееееение видом крутящейся фиговины, чтобы он даже приблизительно не мог оценить время выполнения процесса. Ибо так завещал великий стив джоб.
30 rphosts
 
18.03.15
18:14
(28) что-бы не быть извращенцами со 100500 вариациями 1С а для любого случая писать одинаковый код... ну почти одинаковый
31 fisher
 
18.03.15
18:22
(29) Да не надо сказок. Или покажи место в гайд-лайнах эппла, где для длительных операций с известным прогрессом такое рекомендуется.
32 Провинциальный 1сник
 
18.03.15
18:34
(31) Это секретная директива, но тем не менее обязательная к применению.
33 fisher
 
18.03.15
18:37
(32) Странно. В плейере саундтреки с прогресс-баром до сих пор. Ох кто-то огребёт...
34 DitriX
 
18.03.15
20:09
Ну я делал по другому, я создавал фоновое задание и назначал ему UID, потом в это же UID ложил хранилище значения, ну типо адрес хранилища = UID фонового.
Далее - я мониторил активные фоновые и зная их UID - я вытягивал данные из временного хранилища. Вот так, и без всяких новых объектов. Там поместил, а там забрал.
35 DitriX
 
18.03.15
20:38
А, ну еще можно выводить тоасты или пуши при помощи утилит, тогда вообще ничего не надо получать, прям с сервера и выводите
36 CerbeRUS
 
18.03.15
20:58
(34)
Приветствую, DitriX, вот мы и здесь встретились... :-)

В смысле, "УникальныйИдентификатор (UUID)"? Создавал хранилище значения, туда все, что нужно клал, получал адрес и клал в UUID? А потом с помощью ПолучитьФоновыеЗадания(<Отбор>) получал инфу?
Изврат тоже, конечно... А фоновое задание нормально такой реквизит принимала?
37 CerbeRUS
 
18.03.15
21:02
(35) У меня в мечтах это приложение через Гугл Плей будет распространяться, так что доп. утилиты не подойдут.
38 rphosts
 
19.03.15
02:28
(37) 8.3.6 работает с локальными уведомленирями  и с пуш-сообщениями (мобильные клиенты)
39 rphosts
 
19.03.15
02:28
*уведомлениями
40 33_оленя
 
19.03.15
05:42
(37) есть деньги оплатить взнос 1су и отсылать им ренту с каждой продажи? богатенький.
41 CerbeRUS
 
19.03.15
08:30
(40) Чего, чего? Я, может, чего-то не знаю, разве надо платить 1С, чтобы в ГуглПлей выложить?
Ну а продажи,  это уж слишком, я пока только о бесплатном думал.
42 CerbeRUS
 
19.03.15
08:33
(38) Да, в принципе, локальное уведомление можно вывести в конце загрузки, так даже можно приложение свернуть. Но Проценты уведомлениями выводить - это уж слишком.
43 rphosts
 
19.03.15
08:37
(41) ты всяких оленей меньше слушай, согласно лиц. если ты продал более 20 экземпляров - тебе нужно решать вопрос лицензирования с 1С.
44 DitriX
 
19.03.15
11:40
(41) и таки да, не важно - платно или бесплатно, но с 1с ты должен все согласовать, точнее как - они могут и не трогать тебя, до поры, а если приложение станет хитом - могут тебе напомнить про лицензии.
Так что лучше сразу спишись с ними, у них есть рыба договора, и там уже с ними все порешаешь.
45 CerbeRUS
 
19.03.15
15:06
(44) Спасибо за инфу!
Ну, приложение у меня узкоспециализированное, хитом вряд ли станет, но буду иметь в виду.