Мобильный клиент, автономный режим

1. OlegK 55 19.09.20 22:21 Сейчас в теме
Добрый день!
Пытаюсь потестить Мобильный клиент в автономном режиме.
Платформа: 8.3.17.1549 (Клиент-сервер). Конфигурация самописная. Но, думаю, неважно.
Платформа мобильного клиента: 8.3.17.1549. Сборка мобильного клиента собрана с включенной возможностью работы офф-лайн.

На 8.3.15 (без автономного режима) все ок, работает без проблем.

Но при запуске на 8.3.17 мобильного клиента при каждом запуске (Андроид) идет какое-то обновление (см. скрин) и при отключении интернета просто появляется сообщение о потере соединения с просьбой повторить попытку подключения (как буд-то и нет возможности офф-лайн режима).

В свойствах конфигурации - три документа и справочник добавил (для теста) для возможности работы в оффлайн.

Может чего-то не хватает в настройках? У кого-то есть опыть работы с Мобильным клиентом?
Буду очень благодарен
Спасибо!
Прикрепленные файлы:
Ukubaeva; +1 Ответить
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
16. herfis 496 22.09.20 09:29 Сейчас в теме +6 $m
(10)
Все, что нужно для работы мобильно клиента, сделано. В обычном режиме на 8.3.15 (без автономного режима) работаем.
Если что-то можете конкретное сказать - то - пожалуйста

Куда уж конкретнее. В руководстве разработчика есть отдельный раздел - "Мобильный клиент с автономным режимом".
Откуда следует, что для автономного режима как минимум необходим план обмена.
Причина сабжевого "какого-то обновления" тоже четко описана: мобильный клиент пытается обновить автономную конфигурацию и делает это при каждом соединении/восстановлении соединения. Поскольку это первый запуск - то он пытается "засосать" всю автономную конфигурацию. Ясен пень, это может занять существенное время и возможно стоит просто подождать. И на всякий случай проверить, какой состав автономной конфигурации вы указали. Может, вы там все ERP засосать пытаетесь. И понятное дело, что пока автономная конфигурация не загружена, мобильный клиент в автономном режиме работать не сможет - у него еще тупо нет локальных метаданных.
ЗЫ. Если вам почему-то казалось, что автономный режим - это опция мобильного клиента которую "включил и полетели", то это немножко не так. Иногда полезно и РТФМ.
user785225; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Kovekh 21.09.20 09:11 Сейчас в теме
(1)Пойдём от простого. Галочки-то поставили, что именно у вас в автономке может работать?
Fox-trot; +1 Ответить
7. OlegK 55 21.09.20 21:08 Сейчас в теме
(2) Да: "В свойствах конфигурации - три документа и справочник добавил (для теста) для возможности работы в оффлайн."
13. Fox-trot 156 22.09.20 07:49 Сейчас в теме
(7) видима этого недостаточно
3. Xershi 1473 21.09.20 11:46 Сейчас в теме
(1) насколько помню офлайн корректно должен работать с 8.3.16.
А до этого это просто возможность не закрывать приложение при отваливании интернета.

Также это новая технология, рекомендую отписать в 1С.
Fox-trot; +1 Ответить
11. OlegK 55 21.09.20 21:14 Сейчас в теме
(3) На 8.3.16 тоже пробовали - та же картина. По-идее, технология рабочая - видел презентацию разработчиков платформы. Что-то, думаю, не так в настройках. Знать бы - что именно
6. herfis 496 21.09.20 13:27 Сейчас в теме
(1) Соответствующую главу из руководства разработчика прочитали? Все требования к первому запуску выполнили? Или "научный тык" + "форум" = "наше все"?
Fox-trot; +1 Ответить
10. OlegK 55 21.09.20 21:12 Сейчас в теме
(6) Все, что нужно для работы мобильно клиента, сделано. В обычном режиме на 8.3.15 (без автономного режима) работаем.
Если что-то можете конкретное сказать - то - пожалуйста
16. herfis 496 22.09.20 09:29 Сейчас в теме +6 $m
(10)
Все, что нужно для работы мобильно клиента, сделано. В обычном режиме на 8.3.15 (без автономного режима) работаем.
Если что-то можете конкретное сказать - то - пожалуйста

Куда уж конкретнее. В руководстве разработчика есть отдельный раздел - "Мобильный клиент с автономным режимом".
Откуда следует, что для автономного режима как минимум необходим план обмена.
Причина сабжевого "какого-то обновления" тоже четко описана: мобильный клиент пытается обновить автономную конфигурацию и делает это при каждом соединении/восстановлении соединения. Поскольку это первый запуск - то он пытается "засосать" всю автономную конфигурацию. Ясен пень, это может занять существенное время и возможно стоит просто подождать. И на всякий случай проверить, какой состав автономной конфигурации вы указали. Может, вы там все ERP засосать пытаетесь. И понятное дело, что пока автономная конфигурация не загружена, мобильный клиент в автономном режиме работать не сможет - у него еще тупо нет локальных метаданных.
ЗЫ. Если вам почему-то казалось, что автономный режим - это опция мобильного клиента которую "включил и полетели", то это немножко не так. Иногда полезно и РТФМ.
user785225; +1 Ответить
21. OlegK 55 22.09.20 09:53 Сейчас в теме
(16) План обмена...
Это об этом: https://its.1c.ru/db/v8316doc#bookmark:dev:TI000002234 ?
Получается, что нужно для мобильного клиента писать обмен, как в мобильном приложении? Ну хотя бы для той части объектов, что должны быть в оффлайн?
43. user785225 17 01.12.23 00:53 Сейчас в теме
(42) Отвечу сам себе, что Да, будет

Установил в демо режим совместимости 8.3.14 - появились ошибки, но в автономном режиме заводить данные можно.

А вот свою конфигурацию - никак не удается запускать автономно. Вероятно есть незадокументированные условия, без которых автономный режим попросту не активируется. Поведение такое же:
(1)
при каждом запуске (Андроид) идет какое-то обновление (см. скрин) и при отключении интернета просто появляется сообщение о потере соединения с просьбой повторить попытку подключения (как буд-то и нет возможности офф-лайн режима).

В свойствах конфигурации - три документа и справочник добавил (для теста) для возможности работы в оффлайн.
4. solutioncp24 136 21.09.20 12:22 Сейчас в теме
в самой конфигурации могут быть процедуры которы пытаются соединиться с чем то при запуске, в модуле приложения проверьте процедуру "ПередНачаломРаботыСистемы"
8. OlegK 55 21.09.20 21:09 Сейчас в теме
(4) Никаких процедур обновления нет (а, если и были, то отработали)
5. solutioncp24 136 21.09.20 12:24 Сейчас в теме
и судя по скрину так и есть: конфигурация наличие обновлений для себя проверяет
9. OlegK 55 21.09.20 21:10 Сейчас в теме
(5) Никаких процедур обновления нет (и на 8.3.15 все нормально работает. Естественно, без автономного режима)
12. Kovekh 22.09.20 07:30 Сейчас в теме
(7) Да причём тут созданные объекты. Я про то, что в свойствах конфы, если стоит "Приложение для мобильной платформы", активным становится меню "Состав автономной конфигурации". И вот там нужно галочками проставить ваши объекты и выбрать приоритет основной сервер или автономный сервер. Просто у вас нигде не сказано, что это сделано.
Прикрепленные файлы:
Fox-trot; +1 Ответить
17. OlegK 55 22.09.20 09:41 Сейчас в теме
(12) Я это и имел ввиду - все это есть - настроено: "В свойствах конфигурации - три документа и справочник добавил (для теста) для возможности работы в оффлайн."
Что тут непонятно написано?
19. herfis 496 22.09.20 09:44 Сейчас в теме
(17) Упс. Этот момент я тоже как-то проглядел. Извиняюсь. Тогда странно. И сколько времени висит это самое "Database configuration update"?
20. OlegK 55 22.09.20 09:46 Сейчас в теме
(19) Да буквально секунды. Но автономного режима нет
28. Fox-trot 156 22.09.20 11:17 Сейчас в теме
(17) можно попробовать выгрузить конфу в файлы и ужа там посмотреть проставлены флаги или нет
это на тот случай если баг действительно есть
14. user1079872 22.09.20 09:02 Сейчас в теме
По сути МК с автономным это два в одном (МП и МК в одной конфе/базе) и надо самому прописывать что делать при потере связи.
Метаданные дублируются - пока есть связь то обычный МК работает и МП на своих метаданных.
Связи нет - все МК пропадает и только что в МП синхронизировал осталось доступно.

Не вижу смысла особого в МК с автономным, когда можно ваять обычное МП и на опубликованных в центральной базе сервисах синхронизироваться с ней.
15. user1079872 22.09.20 09:18 Сейчас в теме
Мобильный клиент с автономным режимом совмещает в себе две этих технологии. Помимо обычного мобильного клиента он содержит локальный сервер с файловой базой данных. В рамках адаптации конфигурации под мобильный клиент с автономным режимом часть функциональности конфигурации может быть перенесена на мобильное устройство. Это, конечно, потребует некоторых трудозатрат, но это может оказаться проще, чем создавать с нуля приложение на мобильной платформе. В мобильном клиенте с автономным режимом можно реализовывать только ту автономную функциональность, которую критично иметь в офлайне, и реализовывать ее не всю сразу, а постепенно, по мере необходимости и доступности ресурсов (разработчиков). Мы ожидаем, что на практике затраты на решение задачи работы мобильного клиента при плохой связи / отсутствии связи при помощи мобильного клиента с автономным режимом будут существенно меньше по сравнению с разработкой приложения на мобильной платформе. При этом у мобильного клиента с автономным режимом будет возможность работы и офлайн (с доступом только к реализованной для офлайна функциональности), и онлайн (с полной функциональностью).

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

В рамках адаптации конфигурации под мобильный клиент с автономным режимом можно указать, какие данные конфигурации будут необходимы в автономном режиме:


Состав автономного режима можно задавать вплоть до реквизитов объектов. Например, в каком-то справочнике в определенном реквизите может находиться большой объем данных, который нецелесообразно скачивать на мобильное устройство.

В составе автономного режима также указывается приоритет открытия форм. В соответствии с приоритетом при открытии формы данные в нее будут грузиться с основного либо с автономного сервера.

Для обработки ситуации потери связи с основным сервером на клиенте появилось событие ПриИзмененииДоступностиОсновногоСервера.

С помощью метода ОсновнойСерверДоступен можно в любой момент проверить, есть ли соединение с основным сервером.

При наличии соединения возможны межсерверные вызовы; мобильный сервер вызывает основной сервер, аналогично как это бы сделал мобильный клиент. Через контекст ОсновнойСервер доступны все серверные модули, которые можно вызывать из клиента.

Добавлена инструкция препроцессору МобильноеПриложениеСервер. С помощью конструкций вида «#Если МобильноеПриложениеСервер» можно выполнять код на автономном сервере мобильного клиента.

На основании состава автономного режима создается мобильное приложение с соответствующей структурой локальной базы. Это мобильное приложение может работать в одном из трех режимов (выбираемых пользователем для конфигурации в целом):

Обычный: объекты работают с приоритетом, заданным разработчиком в составе автономного режима.

Автономный (офлайн): приложение работает только с локальным сервером. Работа идет только с локально доступными объектами, остальные объекты недоступны. Стандартные команды интерфейса автоматически подстраиваются под офлайн режим (соответствующие пункты меню становятся недоступны).

Плохое соединение: приоритеты, заданные разработчиком в составе автономного режима, игнорируются, и все объекты, доступные локально, работают с локальным сервером. Например, в приведенном выше примере справочник Контрагенты откроется локально, даже если есть связь.

Рассмотрим ситуацию, когда мы открыли форму с основного сервера, и соединение с сервером после этого пропало. Эта форма станет недоступной до восстановления связи, но можно работать с другими формами, доступными локально. А если аналог открытой на основном сервере формы доступен локально – эту форму можно переоткрыть с локального сервера и продолжить с ней работать.

Обратная ситуация возникает, когда мы работаем с локальной формой, и соединение с сервером восстанавливается. Нам хочется открыть форму с сервера, потому что на ней доступно больше реквизитов. Для этого мы сделали механизм переоткрытия форм.

Переоткрыть форму можно программно вызовом метода Переоткрыть в обработчике события формы ПриИзмененииДоступностиОсновногоСервера. У уже открытой формы вызывается обработчик ПередПереоткрытием, у новой открываемой формы вызывается разработчик ПриПереоткрытии. В обработчиках этих событий можно проинициализировать вновь открываемую форму с учетом данных, введенных (но не сохраненных) на закрываемой форме. Перенести данные можно вручную кодом или автоматически методом ЗаполнитьПриПереоткрытии. Метод ЗаполнитьПриПереоткрытии вызывается автоматически после ПриПереоткрытии если параметр СтандартнаяОбработка = Истина. У метода ЗаполнитьПриПереоткрытии есть ограничения; если реквизиты имеют сложные типы (например, табличный документ или диаграмма) – скопировать их не получится (потому что, в частности, состояние табличного документа на клиенте доступно не полностью). В этом случае метод не скопирует ничего и сгенерирует исключение.

Процесс обмена данными между основным и локальным серверами в текущей реализации целиком возлагается на разработчика, адаптирующего конфигурацию под мобильный клиент с автономным режимом. С помощью планов обмена разработчик может вести учет изменений данных, и синхронизировать изменения, например, с помощью фоновых заданий. Это аналогично разработке приложения на мобильной платформе с обменом данными с приложением 1С на сервере.
Прикрепленные файлы:
18. OlegK 55 22.09.20 09:42 Сейчас в теме
(15) Ну это всем известно, кто читает: https://wonderland.v8.1c.ru/blog/mobilnyy-klient-s-avtonomnym-rezhimom/
Зачем повторять...
22. herfis 496 22.09.20 10:09 Сейчас в теме
(20) То есть, автономная конфа предположительно залетает успешно. Хм... Может, МК как-то определяет, что мобильная база пуста...
(21) Из документации это прямо следует. Никакого "автоматического кэширования" нет. При переходе в автономный режим мобильный клиент остается "наедине" только с теми данными, которые загружены по плану обмена.
23. OlegK 55 22.09.20 10:18 Сейчас в теме
(22) Где бы хоть посмотреть, как демо от 1с реализовали в:
https://wonderland.v8.1c.ru/blog/mobilnyy-klient-s-avtonomnym-rezhimom/
На ИТС и в типовых пока все в общих словах...
Может в ERP что-то уже реализовали. Не хочется велосипед изобретать
24. herfis 496 22.09.20 10:21 Сейчас в теме
(23) А если игнорировать сообщение о потере соединения и попытке его восстановить, что происходит?
При пропадании канала связи с информационной базой происходит переход в автономный режим. При этом:

● Мобильный клиент с автономным режимом пытается восстановить соединение с основной информационной базой.

● Для работы используется автономная информационная база, состав которой определяется во время настройки состава автономной конфигурации, а объем данных ‑ параметрами плана обмена с точностью до последней синхронизации.

● Приложение должно (при необходимости) выполнить переоткрытие формы приложения.

● Возможности, не вошедшие в состав автономной конфигурации ‑ недоступны.

То есть сообщение о потере соединения - это может быть норм. Вызывает сомнение пункт "Приложение должно (при необходимости) выполнить переоткрытие формы приложения." - само должно или не само? Может, попробовать перезапустить, если закрытие сообщения о потере соединения не помогает?
25. OlegK 55 22.09.20 10:24 Сейчас в теме
(24) Нет, не помогает. Работает при потере соединения так, как буд-то это МК без режима оффлайн
26. OlegK 55 22.09.20 10:27 Сейчас в теме
(25) Попробую сегодня-завтра ERP посмотреть. Пишут, что для ERP МП есть уже
Отпишусь, спасибо
27. herfis 496 22.09.20 10:47 Сейчас в теме
(25) А если попробовать вручную перевести в автономный режим?
Включается принудительно, в диалоге свойств информационной базы мобильного приложения или в диалоге свойств пользователя.

Не очень понял, где это, но типа где-то можно :)
30. OlegK 55 22.09.20 17:48 Сейчас в теме
(27) пробовал - перевожу телефон в оффлайн - ничего не происходит
В смысле - появляется окно., что потеряно соединение и повторите типа
И предложения на переход в автономных режим нет. Хотя, пишут и говорят, что автоматом должен переходить
32. herfis 496 22.09.20 17:51 Сейчас в теме
(30) Я не про перевод телефона в оффлайн, а про принудительное переключение в автономный режим (которое и в онлайн должно работать). Просто интересно, как система в этом случае отреагирует. Может, что-то более конкретное ругнется.
33. OlegK 55 22.09.20 17:56 Сейчас в теме
(32) да как-то непонятно, как это сделать. Я вообще не вижу разницы с оффлайн созданной сборкой (8.3.15)
29. solutioncp24 136 22.09.20 13:00 Сейчас в теме
а ссылку можно чтоб конфу скачать?
31. OlegK 55 22.09.20 17:48 Сейчас в теме
36. solutioncp24 136 23.09.20 06:13 Сейчас в теме
(31)ну чтоб в конфигурацию можно было заглянуть.
37. OlegK 55 23.09.20 07:33 Сейчас в теме
(36) Ну у нас сомописная, на англ.
Вот демо (8.3.17): https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.17.1549&path=Platform\8_3_17_1549\demodt_8_3_17_1549.zip
Там все есть по автономному режиму. Все рабочее, проверял. Как часы :)
34. OlegK 55 22.09.20 22:22 Сейчас в теме
В общем, нашел все, что нужно:
- Мобильный клиент с автономным режимом - адаптация конфигураций:
https://www.youtube.com/watch?v=jPSvu4S90EA
- Все можно посмотреть в демо-конфигурации от 1с в комплекте с платформами от 8.3.16 и выше
- Например ( у кого есть доступ): https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.17.1549&path=Platform\8_3_17_1549\demodt_8_3_17_1549.zip

Будем адаптировать конфигурацию по автономный режим
41. AlexiyI 05.10.22 10:12 Сейчас в теме
(34) А как готовить мобильное приложение APK?
Нужно ли его как-то собирать или достаточно скачать с ИТС apk, где написано standalone?
У меня на типовой конфе, в которой реализовано моб приложение в автономном режиме. Там процесс "обновление конфигурации" длится какое-то время, затем отваливается. Приложение установил с ИТС 1cem-standalone-x86.apk.
35. OlegK 55 22.09.20 22:26 Сейчас в теме
herfis, спасибо про наводку про планы обмена :) Не обратил внимания
38. herfis 496 23.09.20 09:24 Сейчас в теме
(35) Это вам спасибо за найденные материалы.
39. aibasoft 10 01.12.20 13:25 Сейчас в теме
(34) Доброго дня. Спасибо за инфу, очень помогли. Сделал самописную конфу мобильно-автономным)). Методом тыка из Демо конфигурации были определены нужные объекты для переноса, таким образом успешно сделал автономку на мобильным.
Теперь о проблеме, есть другая конфа на основе БСП. Там эти объекты не приживаются, конфа даже не умеет читать директиву "#Если МобильныйАвтономныйСервер Тогда", соответственно при открытии на мобильном клиенте открывается с ошибкой и не может создать автономную конфигурацию.
Напишите мне пожалуйста, я думаю у вас опыта побольше... Спасибо
40. Denic_01 46 07.07.22 10:10 Сейчас в теме
Добрый день ! Спасибо за инфо.
Кто нибудь интересовался вопросом можно ли напрямую обратиться из основного сервера к автономному ? наоборот то можно - для этого есть метод "ОсновнойСервер".
А вот обратно не нашел - только нашел способ с клиента вызывать общий модуль с приоритетом "Автономный сервер", тогда можно вернуть данные из автономного сервера на основной, но это не слишком то удобно ...

Еще большая проблема это модули объектов - которые при включении в состав автономной конфигурации какого либо объекта пытаются компилироваться и не могут, понятное дело т.к. там есть ссылки на общие модули и объекты не определенные для мобильного. Общие модули мы опять же не можем включить т.к. в них есть запрещенные объекты н-р журнал регистрации, почти везде, который вызывает ошибку.
Печально, по хорошему для мобильного варианта должны быть свои модули объекта/менеджера объекта или как то все же можно это обойти без использования оберток (#Если МобильныйКлиент Тогда) почти везде ?
42. user785225 17 17.10.23 19:43 Сейчас в теме
Друзья. Вопрос на да/нет

Если в конфе установлен режим совместимости 8.3.14. Будет САБЖ работать? (можно лайк/диз)
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день