Мы поговорим сегодня про мобильного клиента.
Что такое мобильный клиент?
Мобильный клиент – это достаточно сложно. Потому что это приблизительно «тонкий клиент», однако его функционал доступен из мобильной платформы. Вроде бы на нем мы можем запустить типовые конфигурации уровня ERP, УТ, УНФ и так далее. У нас нет проблем с обменами данных, так как это плюшки «тонкого клиента». Мы можем менять функционал мобильного приложения «на лету», но тут поправочка: менять незначительно. Но об этом отдельно потом поговорим.
Обновление: Уже, в принципе, все последние конфигурации в том или ином виде поддерживают мобильный клиент.
О чем тогда говорить? О том, что такое мобильный клиент, где он работает, как завести на нем ERP, как делать публикации, какие новые роли там надо добавлять, какие там метаданные появились, как делается отладка и так далее.
Изначально у меня был запланирован именно такой доклад. Но 1С на wonderland выпустила шикарнейшую статью, где все это описала. Причем в концепции именно 1C: со всеми советами и рекомендациями, где, что, как, почему. Поэтому об этом мы с вами сегодня говорить не будем.
О чем тогда будем говорить? Мы поговорим про реальность использования мобильного клиента. Какие основные тезисы я хочу сказать?
Первый – это реально хороший симбиоз онлайна и непривязанности к стационарному месту. Пока это многих пугает. Потому что, представьте, мобильный интернет плохой, я зашел в подвал, в подъезд, в лифт, у меня пропадет интернет, и ничего не будет работать.
Есть информация от 1С, что в будущем появится мобильный автономный клиент, который как раз предназначен для таких ситуаций, и он сам будет восстанавливать соединение, и вы можете создавать даже документы. Задумайтесь! Автономно создавать документы, а потом синхронизировать их! И это все делает платформа, не вы! Никаких планов обменов, ничего нет.
Обновление: Надо отметить, что уже анонсирована возможность оффлайн работы в режиме мобильного клиента. https://wonderland.v8.1c.ru/blog/mobilnyy-klient-s-avtonomnym-rezhimom/
Конечно, там есть свои нюансы, свои тонкости, мы понимаем. Вероятнее всего - будет проблема с нумерацией, например, если вы создадите локально в автономном режиме документ, но такая функция, вроде как, заявлена.
Это следствие того, что мобильный клиент взял недостатки работы в онлайне. Где это может быть чревато? Это может быть чревато, например, при вызове клиент-серверных передач. Ведь на самом деле для работы мобильного клиента не нужна высокая скорость интернета, нужна стабильность соединения, без обрывов. А будут обрывы, будут проблемы.
Но кроме этого, мобильный клиент «благополучно» перенял все проблемы мобильной платформы. Это очевидно. Интерфейс - не от стационарной 1С. И пока не совсем понятно, как мобильный клиент работает с расширениями. Об этом мы чуть поговорим дальше.
Про онлайн
Как я говорил, серьезную проблему представляют обрывы. Что такое обрыв? Если вы думаете что это просто потеря интернет соединения, то вы не правы. Это заблокированный объект – первое. Второе – съеденная лицензия: объект заблокирован, сессия висит, сеанс висит и лицензию съели. Соответственно, крики пользователей, особенно кладовщиков, которые любят сначала набрать 500 позиций товара. Они их отсканировали, набили вручную 50 позиций, а теперь у них пропал интернет.
Кроме того, это подгрузка лишней информации в плане трафика. Если вы будете делать картинки, например, в стационарной базе 20 мегабайт, это нормально, стационарная потянет. Но мобильная это все будет тянуть из интернета. Поэтому учитывайте эти моменты.
И есть проблемы работы с файловой базой. Мобильный клиент настоятельно рекомендую использовать только в клиент-серверном варианте. Даже не пытайтесь запустить его на файловых базах. Ничего из этого хорошего не получится. Опять-таки по причине обрывов. Потому что когда будет обрыв, вы с файловой базы никого не сможете нормально выкинуть. И даже перезагрузка сервера не всегда помогает.
Как видите, имеется ряд определенных неудобств. И как я ранее говорил, все плюсы, которые есть у мобильной платформы, это, по сути, минусы мобильного клиента.
Представьте себе, мы берем типовую конфигурацию какую-то, ту же самую ERP, открываем документ заказа. Сколько там полей? Сколько там колонок? Попробуем открыть одну какую-то строку. Нам придется долго листать, просто чтобы заполнить эти поля. Поэтому это тоже надо учитывать.
Ниже есть пример того, как, что и где отображается. Это заказ клиента, который взят в режиме мобильного клиента: просто запустили мобильный клиент и открыли этот заказ, чтобы посмотреть.
Но там ничего не понятно. Справа - менее непонятно, но это то, как мы делаем мобильные формы в режимах мобильного приложения и мобильного клиента.
Это строка. Когда вы хотите добавить новую строку, изменить новую строку, вы нажимаете, у вас открывается первая формочка. Это выглядит так:
Режима непосредственного редактирования нет. Для мобильных платформ, для мобильных решений это было бы непонятное решение. Поэтому у вас все колонки преобразуются в элементы, вы начинаете листать и все нужное указывать. Справа пример того, как мы реализуем это у себя в работе.
Обратите внимание: принципиально разный подход. Но ориентир – на нажатие элементов.
Например, на слайде у нас идут вверху отборы, а внизу (1,2, 3, 4, 5 и так далее) – количество. Вы нажимаете на нужное вам количество, например, на 5, а потом нажимаете просто на строку с товаром, и там прибавляется 5. Если надо отнять, нажимаете минус и начинаете отнимать.
К чему я это все говорю? К тому, что если вы думаете, что вы можете взять и запустить ERP с полпинка в мобильном клиенте, так не получится. Не, ну вы можете запустить, но работать с ним будет нереально.
Вот пример формы мобильного клиента. А рядом та же форма, но в мобильном приложении.
Парадокс, да? Я-то понимаю, что здесь надо сделать. Я сейчас не говорю про косяки, плюсики, минусики и так далее, это мелочи на самом деле. Главное: видите внизу - сколько съедает легенда? Она не нужна в мобильном. Вверху тоже куча всего, оно тоже съедает, и оно тоже не нужно в мобильном. А рядом та же самая форма, просто скопированная в мобильную форму, где просто лишнее убрали.
Все это я говорю к тому, чтобы вы понимали: вам всё равно придется лезть в код и реализовывать там мобильность.
Про расширения
Как я говорил, не совсем понятна работа расширения.
Обратите внимание: процедура ПриНачалеРаботыСистемы() вверху, основная конфигурация, Сообщить(“Основная конфа”);
Внизу я перехватил расширением и говорю Сообщить(“Расширение”); мобильный клиент не отвечает на “Основная конфа”. При этом стационарный клиент говорит “Расширение”. Не до конца понятно.
Однако если мы говорим про элементы формы, вверху основная конфигурация, внизу – расширение. Пожалуйста, на мобильном клиенте расширение.
То есть имеются какие-то нюансы, пока мне непонятные. И я не смог понять, почему так происходит. Я даже подготовил список вопросов ребятам, поспрашиваю, может быть, подскажут, может, я где-то что-то не дочитал, не нашел. Но такие моменты бывают. И они иногда приводят в ступор. И моя первая мысль, что расширения вообще не работают. Потом я понял, что они все-таки работают. Но пока работают странно.
Кстати, на слайде представлена версия 8.3.13. Специально проверял, брал последнюю версию.
Что можно сделать с помощью расширений? Естественно, можно менять главный пункт «приоритеты полей». Что такое «приоритеты полей»? 1С добавила новое свойство специально для мобильного клиента. И когда у вас идет табличная часть, например, список заказов, список товаров и так далее, вы говорите: «я хочу, чтобы у меня первая строка была обязательно вот эта, потом эта, потом количество, цена. И если влезет, то можно и НДС. А если и это влезет, то можно то-то и то-то». Грубо говоря, мы выставляем приоритеты. И теперь это можно делать в расширении. В расширении можно реально расставлять приоритеты и не менять при этом основную конфигурацию.
Как я говорил, можно скрывать всякие поля, править элементы формы и все, что с этим связано. Можно расширять мобильный функционал: мы можем сделать фотографию, просканировать штрих-код, сделать еще что-то в этом духе.
Но иногда отличается поведение в мобильном клиенте и в стационарном. Это может привести к тому, что надо будет писать какие-то предпроцессы, думать, как обойти какие-то вещи по-другому. К этому тоже будьте готовы.
Перед заключением я хочу сказать: обязательно используйте HTTPS. Обязательно. Даже не пытайтесь использовать мобильный клиент в режиме просто HTTP-соединения. Еще раз напоминаю: 1С использует basic-авторизацию.
Украсть логин/пароль при этом - это дело даже не пяти минут.
Мне любят сидеть и рассказывать, что мы никому не нужны, мы никому не интересны, мы маленькая фирма... Ребята, это поток. Вы подключились к компрометированной wi-fi-точке, ваши логин и пароль улетели в этот поток. Там никто не сидит и не наблюдает за вами. Никаких глазастых хакеров, которые сидят и мечтают украсть ваш пароль, там нет. Это поток. Вы попадете в этот поток, логины уплывают, а потом начинаются чудеса. Потом может оказаться, что конкурент имеет доступ к вашей базе, например. Поэтому используйте HTTPS.
Напоминаю также, что есть Let’s Encrypt. Он бесплатный. Сертификат выдается ими, ничего никому платить не надо.
Про иконки
Отдельно я хотел поговорить про иконки. Мне иногда страшно, когда начинают кидать разные иконки, начинают пихать их под разные расширения, и получается, что только загрузка иконок занимает, наверное, 50 мегабайт.
У меня вопрос к зрителям: как вы думаете, что это?
Это картинки? Этот объект метаданных, который выведен на форму, это картинка, как вы думаете?
Вопрос с подвохом, я спалился, но не важно. Я отвечу: нет, это не картинка.
Теперь вы видите те же картинки, точнее, то, как это выглядит в браузере и в тонком клиенте. Что это за волшебство? Это не волшебство. Это юникод символы. Их очень много. И когда вам надо добавить крестики, галочки, часы, луну, погоду, все что угодно, пользуйтесь этими юникодами.
Они масштабируются. Вы можете задавать им цвет, можете задавать им размер, можете еще кучу разных параметров задавать. По сути, вы можете работать с ними, как с текстом. Вы можете просто написать «сообщить галочку» и скопировать как текст. Для этого надо всего лишь открыть сайт (адрес на слайде внизу) и выбрать подходящий вариант. Здесь есть варианты для разных браузеров. И одна и та же галочка будет выглядеть на разных платформах по-разному, так, как это свойственно именно этой платформе.
Это тоже важно, когда вы нашли, как добавляются галочки, как добавляются часы, как добавляются какие-то эмодзи и так далее. Ведь люди не задумываются о том, что на Android это выглядит иначе, чем на другой платформе или в браузере. Нашли какую-то красивую иконку или нарисовали, заказали дизайнеру, он и поставил. Хотя есть принятые стандарты, и эти стандарты поддерживаются сообществом, и придумывать, выдумывать здесь ничего не надо. Обязательно пользуйтесь этой фишкой, в том числе и в стационарных конфигурациях тоже.
Заключение
У меня доклад получился короткий. И в заключение я хочу сказать одно: мобильный клиент реально работает. У нас есть проекты с мобильным клиентом, но мы реально с ним работаем. Его используют в тестовом режиме, по-моему, уже 50 торговых агентов.
Но я хочу предупредить, что это нелегко. И если у вас появится проект с мобильным клиентом, прежде чем называть какие-то цены или что-то еще, попробуйте вначале сами все запустить, все те требования, которые хочет заказчик, даже формы. Это очень важно. Если клиент приходит и говорит: «я хочу, чтобы у меня в УНФ, в мобильном клиенте вбивали заказы», вам придется перерисовывать формы. Или клиент будет страдать, или вам придётся перерисовывать формы. Обращайте на это внимание. Это очень важный пункт.
Кроме этого, не думайте что мобильный клиент – это тонкий клиент или это мобильная платформа. Не пытайтесь их сравнивать. На самом деле это уже четвертая сущность, как web-браузер. Ведь когда говорим о толстом клиенте, о тонком клиенте, мы не пытаемся как-то сравнить их с браузером. Хотя, по сути, технология подключения что у браузера, что у тонкого клиента приблизительно совпадает. Но мы говорим отдельно про браузер, потому что это вообще отдельно. То же самое и здесь. Мобильный клиент – это отдельная технология, она требует отдельных навыков, отдельных функций. Даже внешние компоненты из тех, которые работают в мобильной платформе, не все работают на текущий момент в мобильном клиенте. Конечно это мелкие баги, они активно исправляются, потому что технология, действительно, сложная.
Еще раз напоминаю про HTTPS. Это я не устану напоминать никогда.
И опять напомню про картинки. Не тяните большие объемы данных. Будете тянуть большие объемы данных, у вас будет глючить клиент. Это касается не только графики. Это касается, в том числе, клиент-серверных вызовов.
Активно используйте функции «без контекста».
Пытайтесь архивировать данные. При передаче данных с клиента на сервер иногда даже помогает своя сериализация данных в JSON, помещение в хранилище значений, а потом передача всего этого на сервер и восстановление на сервере.
Парадоксально в принципе, потому что 1С должна делать это самостоятельно. Но почему-то обратили внимание, что если идет большой объем данных, так работает быстрее. Не знаю почему. Я думаю, что мы просто нарвались на какие-то чудеса, и так не должно быть. Хотя всякое может быть, надо проверять, надо смотреть.
Насчет лицензии, обрывов и всего остального. Не пытайтесь запустить в режиме файловой версии, потому что это будет проблемой. Даже при стабильном подключении, если вы что-то изменили в конфигурации, какой-то объект либо обновили конфигурацию, расширение и так далее, может пропасть соединение у мобильного клиента, и он попадет в статус зависших сеансов. С файловыми версиями вы, естественно, ничего не сделаете. И, грубо говоря, эксперименты над файловыми версиями не принесут вам никакого удовольствия. Лучше сразу разворачивайте клиент-серверный вариант и экспериментируйте именно на нем. И если вдруг что-то убьете, сели, перезапустили, попробовали, проверили, поигрались...
Последнее, что хочу сказать. Я поигрался уже и с 8.3.13, и с мобильным клиентом, и с мобильной платформой тоже. Если вы знаете, в 8.3.13 появился сейчас новый механизм, которым вы можете вешать стили, и благодаря этим стилям вы можете преобразовывать внешний вид внутреннего приложения. Это касается и стационарной версии, и веб-клиента. Это работает и в мобильном клиенте. Я проверял. Зелененькая 1С - это, конечно, было очень интересно, непривычно, скажем так. Но это действительно работает.
А если вспомнить статьи, которые говорят, что на темных темах можно сэкономить до 50% заряда батареи устройства, то теперь - мы и это можем.
Переходите на темную сторону - у нас печеньки :)
Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2018 EDUCATION.