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

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 505 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 158 22.09.20 07:49 Сейчас в теме
(7) видима этого недостаточно
3. Xershi 1496 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 505 21.09.20 13:27 Сейчас в теме
(1) Соответствующую главу из руководства разработчика прочитали? Все требования к первому запуску выполнили? Или "научный тык" + "форум" = "наше все"?
Fox-trot; +1 Ответить
10. OlegK 55 21.09.20 21:12 Сейчас в теме
(6) Все, что нужно для работы мобильно клиента, сделано. В обычном режиме на 8.3.15 (без автономного режима) работаем.
Если что-то можете конкретное сказать - то - пожалуйста
16. herfis 505 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 137 21.09.20 12:22 Сейчас в теме
в самой конфигурации могут быть процедуры которы пытаются соединиться с чем то при запуске, в модуле приложения проверьте процедуру "ПередНачаломРаботыСистемы"
8. OlegK 55 21.09.20 21:09 Сейчас в теме
(4) Никаких процедур обновления нет (а, если и были, то отработали)
5. solutioncp24 137 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 505 22.09.20 09:44 Сейчас в теме
(17) Упс. Этот момент я тоже как-то проглядел. Извиняюсь. Тогда странно. И сколько времени висит это самое "Database configuration update"?
20. OlegK 55 22.09.20 09:46 Сейчас в теме
(19) Да буквально секунды. Но автономного режима нет
28. Fox-trot 158 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 505 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 505 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 505 22.09.20 10:47 Сейчас в теме
(25) А если попробовать вручную перевести в автономный режим?
Включается принудительно, в диалоге свойств информационной базы мобильного приложения или в диалоге свойств пользователя.

Не очень понял, где это, но типа где-то можно :)
30. OlegK 55 22.09.20 17:48 Сейчас в теме
(27) пробовал - перевожу телефон в оффлайн - ничего не происходит
В смысле - появляется окно., что потеряно соединение и повторите типа
И предложения на переход в автономных режим нет. Хотя, пишут и говорят, что автоматом должен переходить
32. herfis 505 22.09.20 17:51 Сейчас в теме
(30) Я не про перевод телефона в оффлайн, а про принудительное переключение в автономный режим (которое и в онлайн должно работать). Просто интересно, как система в этом случае отреагирует. Может, что-то более конкретное ругнется.
33. OlegK 55 22.09.20 17:56 Сейчас в теме
(32) да как-то непонятно, как это сделать. Я вообще не вижу разницы с оффлайн созданной сборкой (8.3.15)
29. solutioncp24 137 22.09.20 13:00 Сейчас в теме
а ссылку можно чтоб конфу скачать?
31. OlegK 55 22.09.20 17:48 Сейчас в теме
36. solutioncp24 137 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

Будем адаптировать конфигурацию по автономный режим
user983240; +1 Ответить
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 505 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. Будет САБЖ работать? (можно лайк/диз)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот