Отображение прогресса длительной операции (Мобильный клиент) #737218


#0 by CerbeRUS
В мобильном приложении есть процесс, который занимает длительное время. Хочу выводить на экран процент выполнения. Сделал весь код на клиенте, пробовал менять реквизит формы, заголовок формы, заголовок декорации - вид обновляется только после окончания выполнения кода. Получается, надо запускать это все в фоновое задание, а обработчиком ожидания получать процент выполнения. Но как это сделать, если в МП нет объекта Состояние? Какие есть решения, не подскажите?
#1 by fisher
Да хоть псевдографикой.
#2 by fisher
"||||||||||||           "
#3 by CerbeRUS
Проблема не отображения, а получения данных о проценте выполнения из фонового задания. Внутри фонового задания процент я рассчитать могу. А как его на форме узнать?
#4 by fisher
Упс. Таки да, проблема. ПолучитьСообщенияПользователю на МП не работает...
#5 by fisher
Тогда изврат какой-нить придумывать придется. Через файлики, например.
#6 by CerbeRUS
Да, думал про файлики - изврат. Константа - меньший, но тоже изврат. Какие еще есть переменные, доступ к которым можно получить, что на сервере, что на клиенте? Параметры сеанса?
#7 by rphosts
пользоваться реквизитом формы религия запрещает?
#8 by rphosts
через параметры - это изврат но тоже годно
#9 by mikecool
а какие реквизиты формы у фонового?
#10 by rphosts
контекст(форму) туда разве нельзя передать? Хотя это больший изврат чем параметр сеанса
#11 by mikecool
фоновое может и регламентом пуститься, как бы это совсем изврат
#12 by 33_оленя
чеза процесс? тупо поржать.
#13 by fisher
Через файлики, ИМХО, наименьший изврат. Быстро и масштабируемо. Константа и параметр сеанса - это если ограничиваться однозадачностью. В противном случае придется через хранилище значений работать, что вообще грустно. Особенно если в константе.
#14 by CerbeRUS
Да был бы только рад в реквизите формы процент хранить. Но как форму в фоновом задании получить?
#15 by fisher
+ Плюс будет гемор с конкурентным доступом при многозадачности.
#16 by CerbeRUS
да чего ржать, получение данных с сайта. В зависимости от объема данных и скорости инета это может занимать до пять минут.
#17 by rphosts
да ну нафиг, ты как себе представляешь несколько одновременно работающих фоновых на мобильном клиенте? Потом хранить в Параметрах сеанса ТЗ или структуру никто не запрещает (возможно через ХЗ)
#18 by CerbeRUS
Ну, пока я не представляю, где там можно масштаб увеличить, но мало ли... Интересно, что по времени быстрее: из параметрасеанса, константы данные получать или из файла на ус-ве читать?
#19 by banco
храни статистику выполнения процесса и покажи приблизительно время выполнение.
#20 by rphosts
+ опять-же мобильный клиент - по сути файловая база а для неё ограничение - не более одного одновременно работающего фонового, т.е. нет никаких проблем с конкурентным доступом
#21 by rphosts
параметры быстрее всего
#22 by fisher
Не знал про это ограничение. Тогда параметр сеанса лучше всего подходит.
#23 by CerbeRUS
в смысле - параметр сеанса?
#24 by CerbeRUS
Тоже к ПС склоняюсь. Единственное, вызов сервера каждую секунду будет. Хотя, правда, я вообще пока еще плохо понимаю, где на телефоне клиент и сервер.
#25 by fisher
Даже если у 1С нет никакой оптимизации "клиент-сервера" в локальном варианте, то ты же будешь вызов без передачи контекста делать. А кроме контекста какие локально могут быть накладные расходы?
#26 by rphosts
там-же где и клиент но есть клиент и эмуляция сервера
#27 by CerbeRUS
Вроде бы никаких, а так кто эту 1С знает...
#28 by CerbeRUS
Вот я и не совсем понимаю, зачем клиент-сервер эмулировать. Но это уже философский вопрос... С другой стороны, есть совместимость с настольным приложением.
#29 by Провинциальный 1сник
Сейчас прогресс-бары немодны. Сейчас модно воспитывать в пользователе терпееееееение видом крутящейся фиговины, чтобы он даже приблизительно не мог оценить время выполнения процесса. Ибо так завещал великий стив джоб.
#30 by rphosts
что-бы не быть извращенцами со 100500 вариациями 1С а для любого случая писать одинаковый код... ну почти одинаковый
#31 by fisher
Да не надо сказок. Или покажи место в гайд-лайнах эппла, где для длительных операций с известным прогрессом такое рекомендуется.
#32 by Провинциальный 1сник
Это секретная директива, но тем не менее обязательная к применению.
#33 by fisher
Странно. В плейере саундтреки с прогресс-баром до сих пор. Ох кто-то огребёт...
#34 by DitriX
Ну я делал по другому, я создавал фоновое задание и назначал ему UID, потом в это же UID ложил хранилище значения, ну типо адрес хранилища = UID фонового. Далее - я мониторил активные фоновые и зная их UID - я вытягивал данные из временного хранилища. Вот так, и без всяких новых объектов. Там поместил, а там забрал.
#35 by DitriX
А, ну еще можно выводить тоасты или пуши при помощи утилит, тогда вообще ничего не надо получать, прям с сервера и выводите
#36 by CerbeRUS
Приветствую, DitriX, вот мы и здесь встретились... :-) В смысле, "УникальныйИдентификатор (UUID)"? Создавал хранилище значения, туда все, что нужно клал, получал адрес и клал в UUID? А потом с помощью ПолучитьФоновыеЗадания(<Отбор>) получал инфу? Изврат тоже, конечно... А фоновое задание нормально такой реквизит принимала?
#37 by CerbeRUS
У меня в мечтах это приложение через Гугл Плей будет распространяться, так что доп. утилиты не подойдут.
#38 by rphosts
8.3.6 работает с локальными уведомленирями  и с пуш-сообщениями (мобильные клиенты)
#39 by rphosts
*уведомлениями
#40 by 33_оленя
есть деньги оплатить взнос 1су и отсылать им ренту с каждой продажи? богатенький.
#41 by CerbeRUS
Чего, чего? Я, может, чего-то не знаю, разве надо платить 1С, чтобы в ГуглПлей выложить? Ну а продажи,  это уж слишком, я пока только о бесплатном думал.
#42 by CerbeRUS
Да, в принципе, локальное уведомление можно вывести в конце загрузки, так даже можно приложение свернуть. Но Проценты уведомлениями выводить - это уж слишком.
#43 by rphosts
ты всяких оленей меньше слушай, согласно лиц. если ты продал более 20 экземпляров - тебе нужно решать вопрос лицензирования с 1С.
#44 by DitriX
и таки да, не важно - платно или бесплатно, но с 1с ты должен все согласовать, точнее как - они могут и не трогать тебя, до поры, а если приложение станет хитом - могут тебе напомнить про лицензии. Так что лучше сразу спишись с ними, у них есть рыба договора, и там уже с ними все порешаешь.
#45 by CerbeRUS
Спасибо за инфу! Ну, приложение у меня узкоспециализированное, хитом вряд ли станет, но буду иметь в виду.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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