Особенности использования мобильной платформы на крупных предприятиях

Публикация № 1721172 02.09.22

Приемы и методы разработки - Мобильная разработка

Разработчик «Первый БИТ.Савеловский» Валерий Дыков на конференции Infostart Event 2021 Post-Apocalypse поделился своим опытом использования мобильной платформы 1С на примере крупного предприятия «Кордиант». Он рассказал, как удалось реализовать мобильное приложение для офлайн-работы с маркированными товарами, с какими проблемами столкнулись разработчики, и как их удалось решить.

Это – вторая часть моего выступления. С первой частью я выступал на параде мобильных приложений 1С, где рассказывал про маркетинговую составляющую нашего мобильного приложения для маркировки – о том, какие задачи бизнеса оно помогло решить крупнейшему производителю шин в России.

В этом выступлении я расскажу о технических особенностях проекта и о программистской части.

 

 

Немного о проекте. Кордиант – крупнейший производитель шин в России. Компания управляет двумя заводами – в Омске и в Ярославле. Наше мобильное приложение для учета маркировки шин они используют с ноября 2020 года – в производстве и на складах. При этом в одной сети с приложением работает порядка 100 ТСД.

Приложение на ТСД они внедряют в связи с маркировкой, потому что каждую шину нужно маркировать отдельной маркой. А количество шин у них измеряется десятками миллионов в год, и на каждое ТСД нужно загрузить примерно такое же количество марок, чтобы можно было выполнять с ними операции. Поэтому размер мобильной базы примерно 7 гигабайт.

С ТСД в центральную базу 1С в секунду проходит порядка 2,5 транзакций – это двухсот тысяч транзакций в сутки.

Соответственно, у нас стояла задача автоматизировать эту большую сеть, где работает много ТСД вместе с центральной базой 1С.

 

Что мы внедряли и что такое БИТ.MDT

 

 

У нас есть коробочное решение БИТ.MDT. Оно состоит из:

  • мобильного приложения;

  • расширения для типовых конфигураций УТ11/ERP/KA, которое обеспечивает интеграцию с мобильным приложением.

Функциональные возможности БИТ.MDT:

  • Поддерживает работу в режиме офлайн. Заводы большие, связь есть не на всей территории. Вышел из цеха грузить шины в грузовик – связи нет, поэтому у мобильного приложения должна быть работа в режиме офлайн;

  • Поддерживает все операции с маркированным и не маркированным товаром;

  • Поддерживает все складские операции, реализованные в 1C:ERP 2, 1C:УТ 11, 1C:KA 2.

Сегодня расскажу об особенностях мобильной платформы и двух архитектурах – о той архитектуре мобильного приложения, с которой мы начали, и той, к которой мы пришли в версии 2.0.

 

Общая архитектура системы v1.0

 

 

БИТ.MDT состоит из нескольких частей.

  • расширение, которое встраивается в типовую конфигурацию;

  • мобильное приложение, которое работает на ТСД;

  • транспорт между этими компонентами обеспечивается через:

    • брокер сообщений на базе RabbitMQ;

    • и через Web-сервис.

Что дает использование RabbitMQ:

  • RabbitMQ позволяет доставлять сообщения даже тогда, когда какие-то участники обмена вне зоны доступа, в том числе, когда центральная база недоступна. Например, мы обновляем центральную базу ERP, – база большая, обновление длится несколько часов, но в это время с двух ТСД можно собирать один заказ.

  • ТСД обмениваются информацией напрямую через брокер между собой, даже если в этот момент центральная база недоступна. Это позволяет обеспечить работу 24/7 на ТСД.

  • Кроме того, RabbitMQ позволяет гибко маршрутизировать сообщения между базами и доставлять их до устройств центральной базы тогда, когда они становятся доступными и выходят на связь.

Web-сервис используется только при первоначальной инициализации, когда подключают новый ТСД и нужно однократно передать на него большой объем информации. Тогда мы используем Web-сервис, чтобы 7 гигабайт прокачать на ТСД за раз.

 

Архитектура мобильной части

 

 

Что касается внутренней архитектуры, то на ТСД мы используем обычное мобильное приложение на 1С, у которого есть единственная особенность – так называемые «документы-события». Каждое событие, которое отражает фактическую операцию – например, сканирование марки при погрузке в грузовик или на паллет – оформляется в отдельный документ и сразу отправляется в RabbitMQ. Мы не используем многострочный документ с табличными частями. Одно событие – один маленький документ.

Все взаимодействие мобильного приложения с внешними системами у нас реализовано через внешние компоненты:

  • для обмена с RabbitMQ по протоколу AMQP мы используем внешнюю компоненту;

  • для хранения больших объемов информации и редко используемых данных мы используем внешнюю базу SQLite, информацию в которую тоже передаем через внешнюю компоненту;

  • и дополнительно у нас используются внешние компоненты для работы с оборудованием – с тем же сканером, клавиатурой и т.д.

 

Особенности, с которыми мы столкнулись

 

 

Кто не знает – в мобильном приложении 1С используется обычный движок файловой базы, там внутри такая же файловая база данных, как на десктопе. Более того, можно сделать бэкап мобильного приложения и открыть на десктопе, чтобы посмотреть содержимое. Движок тот же самый.

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

Ограничен максимальный размер базы. Мы можем затолкать в мобильную базу не более 3,5 гигабайт. А нам нужно 7 гигабайт. Что делать?

  • Для хранения больших объектов мы используем внешнее хранилище SQLite. Например, используем его для хранения 7 миллионов марок – это самое массовое, что у нас есть по объему. Добавляем марки в мобильную базу 1С только по необходимости. Просканировали марку, проверили, что ее нет в 1С, получаем марку из базы SQLite и добавляем в базу 1С;

  • Также используем SQLite для хранения редко используемых объектов, таких как «снимок» данных центральной базы (который актуализируется);

  • Не храним в мобильном приложении лишней информации, поэтому структура метаданных отличается от ERP/УТ 11.

Блокировка на всю таблицу. Когда человек просто работает с мобильным приложением, проблем нет, но когда подключается обмен в фоне, тут вылезают проблемы, потому что нельзя писать в одни и те же таблицы при обмене и при текущей работе пользователя, иначе пользователь получает ожидания на блокировках и сообщения об ошибках. Что делать?

  • Мы постарались в метаданных разнести объекты, которые пишутся при обмене и которые пишутся при текущей работе пользователя – не писать в одни и те же таблички при обменах и при текущей работе. Например, храним в разных местах сообщения на отправку и отметку об отправке.

Низкая скорость записи, особенно у ссылочных объектов. Ссылочные объекты в мобильную базу 1С пишутся со скоростью 1-10 объектов в секунду, а у нас 2,5 транзакции в секунду. Мы никак не успеваем. Что делать?

  • Сообщение пришедшее по обмену пишем в базу SQLite, а затем по мере необходимости достаем оттуда и восстанавливаем объект в 1С. Объекты в 1С создаются в основном из-за интерактивных действий пользователя, а он не может нажимать кнопки чаще, чем 1 раз в секунду.

В редких случаях – когда на мобильном устройстве не хватает места или возникают проблемы с блокировками – файловые базы могут разрушиться. Что делать?

  • Мы стараемся как можно быстрее отправить с мобилки информацию в центральную базу;

  • Мы сделали простую повторную инициализацию. Если все сломалось, можно за 10-20 минут все на ТСД восстановить и работать дальше. Даже если базу мы разрушили, то легко сделать новую.

 

 

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

В мобильной платформе 1С не поддерживаются регл. задания. Поэтому мы организовали свой «менеджер» заданий – из обработчика ожидания форм запускаем специальное фоновое задание, которое, фактически, управляет всеми процессами: запускает обмены, обрабатывает результаты обменов и т. д.

Фоновые задания выполняются только в один поток – так же, как в файловой базе. Из-за этого мы не можем параллельно выполнять много фоновых заданий.

  • У нас есть одно фоновое задание, которое вызывает последовательно: отправку сообщений, получение сообщений, обработку сообщений. В эти процедуры мы передаем количество секунд – время, сколько они могут работать.

  • Каждая процедура следит за тем, чтобы выполняться нужный отрезок времени. Например, если отправка сообщения выполняется больше двух секунд, то она останавливает получение сообщений, даже если остались в очереди, и переходит к следующему пункту. Фактически мы сделали свое управление заданиями со временем.

Из фоновых заданий нельзя писать в те же таблички, в которые пишет пользователь при текущей работе.

  • Отделяем данные, которые приходят по обмену, от данных, которые вводятся на текущем ТСД;

  • Если не удалось, то максимально уменьшаем время транзакций.

 

 

Еще одна особенность заключается в том, что в мобильной платформе нет средств для организации массового обмена «все со всеми».

Классические планы обмена подразумевают обмен «один к одному» – когда мы в каждом узле регистрируем изменения для каждого узла.

Это хорошо, когда 2-3 базы, но когда 100 баз, и они обмениваются между собой – такой подход перестает работать.

Способ решения – это использовать брокер сообщений. Мы используем RabbitMQ. Мы регистрируем событие один раз, отправляем его в брокер, а дальше уже брокер сам рассылает его в нужные базы. Он этим занимается, а не мы.

Альтернативное решение – сделать Web-сервис в центральной базе, который возьмет на себя функции брокера и будет заниматься рассылкой. Фактически, это то же самое, что написать свой брокер, но только внутри 1С – тогда мы завязываемся на доступность центральной базы.

Запись данных, пришедших по обмену, – это дорогое удовольствие, поэтому нужно стараться как можно меньше отправлять по обмену. Что мы для этого делаем?

  • Отправляем только то, что нужно отправить. При регистрации изменений смотрим, изменились ли реквизиты, важные для других баз и обмена. И если в номенклатуре меняется некритичный реквизит (например, ответственный менеджер), мы не отправляем эту номенклатуру в ТСД, потому что не считаем ее изменившейся;

  • Используем пакетную отправку. Мы объединяем однотипные события в одно сообщение. Например, нам выписали 10 тысяч марок, одобрили использование, мы пакуем их в одно сообщение и отправим одним сообщением, а не по отдельности;

  • Помещаем объекты в «снимок». При получении данных мы сначала складываем их в SQLite, а сами объекты восстанавливаем в мобильном приложении восстанавливаем по запросу;

  • Упростили структуру сообщений обмена, чтобы они занимали мало места. В сообщениях хранятся только GUIDы объектов – они помещаются в снимок «как есть», а разбираются только по требованию.

 

 

Следующая особенность – «из коробки» интерфейс мобильного приложения 1С такой же, как в десктопной платформе.

Многие считают, что интерфейс мобильной платформы 1С по внешнему виду несовременный.

  • В приложениях компании «Рарус», например, перерисовывают интерфейсы с использованием HTML-документа.

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

Интерфейс мобильной платформы заточен под использование тачскрина, на тыкание пальца в экран. С шинами же работают все в перчатках, в экран тыкать пальцем невозможно, поэтому нам важно обрабатывать нажатия на клавиатуру. В последних версиях платформы сделали поддержку железной клавиатуры, но там есть особенности, из-за которых мы не можем использовать стандартные возможности.

  • Мы написали свою внешнюю компоненту, которая перехватывает клавиши и передает в 1С.

  • Также мы перерисовали диалоговые окна: предупреждение, вопрос, чтобы можно было работать только с клавиатуры.

Основная форма представления информации в мобильном приложении – это списки. Сделать красивые списки в мобильной платформе достаточно сложно. Мы воспользовались рекомендациями специалистов «Раруса» – их статья о том, как делать списки, чтобы с ними было удобно работать, есть на Инфостарте. И сейчас для списков мы используем таблицы формы с одной или двумя колонками.

 

 

Я здесь попытался заскриншотить, что нам нарисовал дизайнер слева, а справа – то, что получается в 1С по факту.

Обратите внимание, что в мобильной платформе 1С сделать внутри одной ячейки разный цвет и шрифт, выделить что-то, не используя HTML-поле документа, невозможно. Но для нас это оказалось некритично.

 

 

Следующая особенность в том, что в мобильной платформе 1С нет специальных средств для первоначальной инициализации.

Когда у нас к работе подключается новый ТСД, на него нужно одномоментно передать базу с 7 миллионами марок – это большой объем информации.

Как бы мы это делали, если бы использовали РИБ? Мы просто бы скопировали бы базу, подключенную к РИБ, и подключили ее как еще один узел. В случае мобильной платформы мы так сделать не можем, потому что таких встроенных средств нет.

Что мы делаем? Так как у нас основная масса данных лежит в SQLite, мы готовим базу SQLite на десктопе, а дальше при первоначальной инициализации копируем готовую базу на мобилку, подключаем и дальше ее используем. Фактически это аналог копирования базы при использовании РИБ.

Мобильная платформа 1С не содержит никаких средств Mobile Device Management (MDM) для управления мобильными устройствами. Установку, обновление, инициализацию приложения на мобилке нужно делать руками, это нельзя сделать из центральной базы. Мы у себя на первом этапе этот вопрос решили так:

  • Пользователи сканируют QR-код, который скачивает приложение,

  • А потом сканируют второй QR-код, в котором содержатся все настройки для подключения к RabbitMQ, к Web-сервису и т.д.

Для инициализации программы на устройстве нужно последовательно просканировать два QR-кода. Ничего не надо вводить руками.

 

 

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

У нас продукт тиражный и нам важно тестировать то, что мы делаем. И желательно автоматически, а не руками.

Какой способ обхода сейчас?

  • У себя на проектах мы для тестирования прикладной логики используем Vanessa Automation. Ее же мы используем для БИТ.MDT – как вы знаете, мобильное приложение можно запускать в тонком клиенте на десктопе. Если мы запускаем его в тонком клиенте, то работают все фишки обычной десктопной платформы, в том числе тестирование через Vanessa Automation. Так мы проверяем всю прикладную логику.

  • Те места, где мы используем внешние компоненты, мы обошли через директивы компилятора #Если ТонкийКлиент Тогда – не выполняем вызов внешних компонент, вместо них выполняем какие-то «заплатки».

  • Особенности, связанные с внешними компонентами, пока тестируем руками. Ждем 8.3.20, где обещали появление поддержки клиентов тестирования в мобильной платформе. Сможем конкретно на устройстве тестировать с использованием Vanessa Automation.

  • Пытаемся использовать штатное средство для тестирования андроид-приложений – UI Automator, но с этим тоже есть проблемы, потому что все диалоговые элементы в 1С генерируются динамически, без названий, и снаружи кликать или что-то делать с такими элементами сложно.

 

Итог Архитектуры 1.0 и предпосылки перехода на Архитектуру 2.0

 

 

С такой архитектурой проект на «Кордианте» удалось запустить на 100 ТСД.

Все это используется уже полгода без особых проблем, за прошедшее время количество ТСД увеличилось на 20 штук. Инициализация одного ТСД занимает 20 минут.

ERP за этот период уже несколько раз обновлялось – с особыми сложностями мы за это время не столкнулись.

Но все равно проблемы есть.

Первая проблема связана с архитектурой:

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

  • Процесс обновления мобильного приложения все равно сложный, он фактически ручной. Отделу ИТ нужно пойти, собрать ТСД, принести в комнату и два QR-кода просканировать. Этот процесс не может быть выполнен обычными кладовщиками.

Есть еще несколько проблем, связанных самим коробочным решением БИТ.MDT и его внедрением на массовом рынке:

  • В текущей архитектуре для работы БИТ.MDT требуются сторонние инструменты – RabbitMQ и вебсервер. Простые пользователи не могут это установить и настроить самостоятельно, для них это слишком сложно.

  • Мобильная часть обновляется вручную, что неудобно.

  • Особенность у маленьких клиентов – при длительном отсутствии связи, например, на пару дней, скапливается много сообщений и ТСД их может разбирать часами. С этим тоже нужно как-то бороться.

 

 

В результате мы перешли к архитектуре 2.0, в которой есть незначительные доработки.

  • Мы поддержали обмен через облачные CloudAMQP и добавили использование SSL – если кто-то следит за нашей десктопной компонентой PinkRabbitMQ, там тоже в связи с этим добавился SSL.

  • Вместо Web-сервиса для передачи больших данных мы теперь умеем использовать S3 – либо от Amazon, либо от YandexCloud – неважно, где.

  • Теперь для обычных пользователей никакого дополнительного ПО ставить не надо – мы в рамках подписки даем доступ к отдельному хосту RabbitMQ и к отдельному бакету в S3. Ничего настраивать не надо – человек купил лицензию, ввел два параметра и сразу может обмениваться через облако, лишь бы у ТСД было соединение с интернетом.

  • Для крупных предприятий оставили старый вариант, когда все хостится у себя.

 

 

Более значительные изменения коснулись внутренней архитектуры. У нас появилось отдельное приложение DataProvider, которое отвечает за обмен, хранение и обновление БИТ.MDT снаружи.

Это обычное приложение на андроид, которое работает как служба, и находится между внешними сервисами и мобильным приложением.

Расскажу о DataProvider подробнее.

 

Что умеет DataProvider

 

 

DataProvider устанавливается на ТСД как отдельное приложение/служба. Установка производится при первоначальной инициализации мобильного приложения из центральной базы БИТ.MDT. Если сервис нужно обновить – это нужно довольно редко – он обновляется тоже прямо из MDT.

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

DataProvider берет на себя следующие функции

  • Умеет автоматически без участия БИТ.MDT получать сообщения из центральной базы через RabbitMQ и S3, разбирать эти сообщения на объекты и складывать их в базу SQLite, пока мобильное приложение БИТ.MDT эти объекты не попросит.

  • Отправляет данные – получает из мобильного БИТ.MDT данные для отправки и когда появляется связь, отправляет их и в центральную базу в фоне;

  • Хранит различные объемные данные «до востребования» и предоставляет к ним доступ из БИТ.MDT через SQL запросы.

  • Умеет получать обновления и обновлять мобильное приложение БИТ.MDT снаружи.

Расскажу подробнее, как производится управление автоматическими обновлениями.

 

Обновление БИТ.MDT из DataProvider

 

 

Первый лайфхак – мы используем обновление через удаление вместе с данными. Мы, как правило, не обновляем мобильное приложение. Вместо этого мы удаляем старое приложение и устанавливаем новую версию программы с последующей инициализацией.

Если бы мы обновлялись, у нас была бы отдельная сложно решаемая задача – как синхронизировать данные между ста устройствами, как убедиться, что у всех одинаковые данные. Задача сложная и мы ее решать не беремся.

Мы делаем просто – каждый раз, когда нужно обновиться, то мы все стираем, забываем о том, что было на мобильном устройстве и устанавливаем приложение заново. Заново скачиваем актуальную базу SQLite из центральной базы и начинаем работать с чистого листа. Таким образом мы добиваемся, что при достаточно частом обновлении, у нас данные синхронизированы на разных устройствах.

Как работает DataProvider для обновления. Мы из центральной базы где-то в интернете или во внутреннем хранилище, либо на Web-сервисе публикуем файл-манифест, в котором указано:

  • какие устройства;

  • на какую версию платформы нужно обновить;

  • и где для этого взять apk-файл.

DataProvider знает, что файл-манифест лежит в таком-то месте по такой-то ссылке, и периодически следит за ним.

  • Если DataProvider видит, что файл-манифест поменялся, и устройство нужно обновить, он передает через внешнюю компоненту в мобильное приложение сообщение: «Я тебя скоро буду обновлять, предупреди пользователя».

  • Пользователь получает предложение обновиться и обновляет мобильное приложение.

Это нам позволило прямо из центральной базы 1С:ERP через справочник мобильных устройств определять: «Эту версию apk раскидай на эти устройства по списку». Теперь не надо ходить и собирать физически устройства.

Все делается снаружи, управляется через интернет. Получилась MDT-система на минималках.

 

Отправка и получение данных из мобильного приложения через DataProvider

 

Как я говорил, с мобильным приложением есть две проблемы.

  • Первая – нет параллельных фоновых заданий, нам приходится самим управлять их последовательным запуском.

  • Вторая – блокировки на таблицах, мы не можем одновременно записывать данные и обеспечить текущую работу пользователю.

Чтобы решить эти две проблемы, мы вынесли отправку и получение данных во внешнее приложение.

 

 

Раньше для передачи данных из мобильного приложения мы использовали тот же подход, что и для десктопного приложения.

  • При возникновении события (записи объекты), регистрировали это событие в специальном справочнике или в плане обмена;

  • В фоновом задании выгребали все зарегистрированные события из плана обмена или справочника, формировали текст сообщения и отправляли через RabbitMQ.

Теперь при возникновении события сразу формируем сообщение и высылаем в DataProvider.

  • Никаких фоновых процессов, связанных с отправкой, в 1С больше нет.

  • DataProvider сам при появлении связи отправляет это сообщение в RabbitMQ.

  • Так как пользователь практически никогда не может генерировать события чаще, чем раз в секунду, то нет проблемы в том, что мы в этой же транзакции записи объекта сразу формируем сообщение и сразу его передаем – пользователь никого не блокирует, потому что он на своем устройстве в базе работает один.

 

 

Раньше для получения данных из мобильного приложения мы использовали тот же подход, что и для десктопного приложения.

  • Мы периодически опрашивали RabbitMQ в фоновом задании и забирали сообщения;

  • В отдельном фоновом задании пытались формировать объекты по этим сообщениям – при этом сталкивались со всем набором проблем файловой базы.

Теперь забором и хранением сообщений в базе SQLlite занимается DataProvider.

  • Забором сообщений занимается DataProvider и хранит их у себя бесконечно долго – до востребования мобильным приложением БИТ.MDT;

  • DataProvider понимает по сообщению, что это за сообщение, и, если оно должно храниться в базе SQLite, то сразу его туда складывает вообще без участия 1С;

  • 1С, когда ему это удобно, берет нужные данные из DataProvider, с которым у него всегда есть связь.

 

Пример работы приложения

 

 

На слайде показан пример пакетной передачи марок из центральной базы в мобильном приложении и складывание в базу SQLite.

Слева показан текст сообщения, в котором указана информация сразу по нескольким маркам. Синей обводкой я выделил ту информацию, которая относится к одной марке.

Обратите внимание, что хотя это JSON, он без названий полей – это способ побороться с объемом передаваемых сообщений. Заголовки полей для марок нам не нужны, потому что мы и так знаем последовательность реквизитов. Поэтому боремся за место.

Сообщение через RabbitMQ пришло в DataProvider, и тот сразу нераспарсенным складывает его в базу SQLite.

DataProvider ничего не знает про структуру объектов 1С – он просто разбирает массив из JSON в конкретный элемент и складывает сообщения в базу данных в отдельные записи.

В отдельную колонку складывает имя объекта метаданных и его GUID, и теперь, когда нам этот объект из 1С потребуется, мы его по GUID быстро найдем и только в этот момент его распарсим и создадим объект в 1С.

 

 

Как это выглядит при сканировании марки.

  • Мы просканировали марку на устройстве, поискали в 1С – ее там не оказалось.

  • Мы идем в базу SQLite, там есть типовой регистр сведений «Штрихкоды объектов», который хранит соответствие между штрихкодом и GUID объектов системы.

  • По этому штрихкоду нашли GUID соответствующего элемента и дальше по нему нашли текст нужного сообщения.

  • Создали элемент справочника штрих-кода упаковок в 1С и вернули его в вызвавшую процедуру.

С точки зрения прикладной логики это выглядит так: получить штрихкод упаковки для марки с таким-то кодом. На выходе он получает ссылку на элемент справочника 1С, но под капотом программа лезет в базу SQLite, находит соответствующее сообщение, создает элемент справочника «Штрихкод упаковок» в 1С и возвращает на него ссылку. Вот так выглядит извлечение из базы SQLite по требованию.

Поэтому в мобильной базе на конкретном устройстве содержатся только те марки, которые пользователь просканировал. А один человек не может просканировать 7 миллионов марок.

Таким образом мы решили проблему с объемом базы, которая лежит в мобильном приложении.

 

Итоги и выводы по использованию мобильной платформы на крупных предприятиях

 

 

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

  • функции транспортировки и хранения вынесли в отдельное приложение;

  • сделали возможность обмениваться через облачные сервисы.

Вся прикладная разработка у нас как была, так и осталась в 1С. Мы можем быстро адаптировать наше решение под нужды заказчика.

 

 

Выводы:

  • Мобильную платформу можно использовать на больших предприятиях с большими объемами данных и устройств, которые обмениваются между собой.

  • Есть особенности, которые нужно учитывать.

  • Преимущества мобильной платформы никуда не делись – прикладная разработка и адаптация под требования конкретного предприятия легко делается обычными специалистами 1С, которые до этого под мобилку ничего не писали. Всю механику и особенности можно скрыть на более нижнем уровне, и тогда прикладные разработчики не будут с этим иметь дело напрямую.

 

Вопросы:

 

Для чего копировать базу SQLite на локальные устройства, когда ее можно держать в централизованном облаке? Если скорость доступности не устраивает, то может быть в локальной сети держать?

Основное требование – возможность работы в режиме офлайн. Если требований к офлайну нет, то и нет нужды использовать мобильную платформу, а можно использовать мобильный клиент и тогда не надо держать нигде базу.

У нас появляется требование к офлайну, причем к такому офлайну, где у пользователя может не быть связи полдня, пока он грузит машины. Когда ты полдня в офлайне находишься, то появляется необходимость держать не общую базу, а передавать на каждое устройство. Вот откуда рождаются эти проблемы, они связаны с тем, что нужно обеспечить офлайн.

Мы тоже работаем с маркировкой и логически приходим все к тому, что нужен онлайн. Это проблема не программистов, а системных администраторов в том, чтобы повесить соответствующие точки доступа. Мы не можем хранить маркировки на локальных устройствах. Это очень дорогое и ненужное решение.

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

Второй пример, когда для маркировки нужен офлайн, – это где-нибудь на Дальнем Востоке , где 600 километров до цивилизации, и интернет встречается только изредка, и то через GSM. Там невозможно обеспечить достаточную скорость соединения и стабильность, чтобы обеспечить работу в тонком клиенте или в других онлайн-сервисах. Там связь может пропасть на день и даже не доедешь никуда, чтобы подключиться.

По нашему опыту, офлайн требовался на больших предприятиях и на удаленных предприятиях. А во всех других случаях, где можно обеспечить покрытие интернетом, онлайн-решение, конечно, лучше.

У вас большая команда разработки, которая все это делает и поддерживает?

Всего семь человек, из них штатных программистов – три человека. Плюс мы привлекаем дополнительных разработчиков на проект.

Почему мобильный клиент с автономным режимом вам не подошел?

В нашем случае он ничего не решал. Его можно использовать, если автономная работа нужна изредка. Если у вас 50 на 50, вам все равно придется сделать для офлайн-работы отдельные формы, добавить все метаданные и обеспечить обмен. Вам же все равно нужно будет хранить на устройстве все данные, которые нужны для офлайн-работы.

Зато не нужен зоопарк всех дополнительных систем.

А как вы эти данные, которые нужны для офлайн-работы, передадите на устройства? Вам же нужно их передать.

Но если не использовать автономный мобильный клиент, нужно поддерживать одну систему, а в вашем случае две.

Это не проблема. Поскольку режим автономной работы заставляет нас написать этот обмен даже для автономного мобильного клиента, код мы напишем ровно такой же.

Услышал, что вы бились за скорость передачи и за объем передаваемых данных. Зачем тогда использовался JSON, хоть и порезанный? Почему не использовали бинарный протокол? Зачем вы для хранения GUID и штрих-кодов выбрали регистр, а не справочник?

Бинарный протокол даст в полтора раза выигрыша, но, как правило, у нас передаются одинарные сообщения. Они небольшие и сжимать их особо нет смысла. Там у нас utf-8, где один байт на один символ. Ничего, кроме запятых, из лишних данных там нет.

Бинарный протокол по объему даст выигрыш, но тут мы можем просто в консоли RabbitMQ посмотреть, что происходит. А для бинарного протокола нужно отдельные средства выдумывать. Возможно, мы в будущем перейдем на бинарный протокол, но пока выигрыш не особо чувствуется, и сейчас удобнее расследовать разные проблемы.

Что касается регистра сведений для хранения штрихкодов – это пережиток прошлого. Когда-то мы пытались сделать в MDT такую же структуру метаданных, как в УТ, чтобы было проще разрабатывать и обмениваться. Но столкнулись с тем, что эта структура данных нерациональна, занимает много места и с ней сложно работать. Кое-где мы выпилили ее, но данный конкретный регистр не убрали. Он просто унаследован из типовых решений 1С.
 

*************

Данная статья написана по итогам доклада (видео), прочитанного на конференции Infostart Event 2021 Post-Apocalypse.

Больше статей можно прочитать здесь.

 


 

*************

Специальные предложения

Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Инструменты администратора БД Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    70407    user700211_a.straltsou    30    

Пакет дополнений к Simple UI. Ноябрь 2022

Мобильная разработка Мобильная платформа Бесплатно (free)

На этот раз сборная солянка, всего понемногу, но полезное: еще одна итерация улучшений по спискам, возможности кастомизации элементов интерфейса, специальные возможности для Urovo, общие возможности управления видимостью и даже новый вид события. Данная статья является дополнением к публикации https://infostart.ru/public/1153616/

21.11.2022    992    informa1555    0    

1c8 push уведомление на Apple устройства (APN) по сертификату .p8, протокол http2

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Отправка из 1С8 push уведомлений на APN (apple устройства) используя .p8 сертификат от Apple по протоколу http2

02.09.2022    447    eda_light    0    

Пакет новых элементов к Simple UI. Май 2022

Мобильная разработка Мобильная платформа Россия Бесплатно (free)

Новые поля ввода, кнопки и т.д. Основная статья тут: http://infostart.ru/public/1153616/

04.05.2022    927    informa1555    2    

Фитнес – твой личный тренер в зале и дома Промо

Инструкции пользователю Мобильная разработка Платформа 1С v8.3 Развлечения, искусство, спорт Бесплатно (free)

Хочешь быть здоровым, прекрасно выглядеть и неустанно стремишься к совершенству? Фитнес поможет достигнуть реальных результатов на пути к идеальной фигуре и здоровому телу.

15.04.2016    39044    Baksheev-Nikita    54    

Настройка рабочего места для мобильной и веб-разработки в 1С для самых маленьких

Мобильная разработка Мобильная платформа Россия Бесплатно (free)

Совсем недавно встала необходимость подготовить рабочее место для разработки мобильного приложения на 1С, подробного гайда в интернете не нашел (может, искал плохо), поэтому решил написать свой. В конце будет один неочевидный момент, без которого "не заводится".

18.04.2022    5418    AntonChausov    14    

Мобильная бригада — приложение ТОиР на мобильной платформе 1С для ускорения выполнения ремонтов

Мобильная разработка Готовая продукция, работы и услуги Мобильная платформа Россия Управленческий учет Бесплатно (free)

Мобильная бригада — универсальное приложение для удаленной работы с 1С:ТОИР. Включив в свой арсенал мобильные гаджеты с приложением, ремонтная служба приобретает ряд преимуществ: ускорение приема и обработки заявок на ремонты, снижение количества ошибок предоставления и ввода данных, оперативное отслеживание изменений, немедленная обратная связь, удаленный доступ ко всей необходимой информации и повышение дисциплины. «Мобилизация» проходит быстро. Практика показала: научиться работать с помощью смартфона для линейных рабочих проще, чем освоить компьютер.

15.02.2022    1256    Desnol_Soft    10    

Мобильное приложение "Дорожный ассистент" для 1С

Мобильная разработка Мобильная платформа Россия Бесплатно (free)

Пример реализации мобильного приложения для водителей грузового транспорта. Frontend: React-Native. Backend: 1С.

14.02.2022    1094    80lvlAPP    8    

Отладка конфигураций на мобильной платформе Промо

Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

Настройка и подключение отладчика для отладки конфигураций на мобильной платформе.

25.09.2016    59774    spezc    52    

Android на Windows 11 стандартными средствами [Шпаргалка]

Инструкции пользователю Мобильная разработка Мобильная платформа Бесплатно (free)

Шпаргалка по установке apk на Windows 11, используя стандартные средства ОС.

09.02.2022    4456    dsdred    15    

Новые подходы к дистрибуции решений Simple UI, GitHub, переопределение меню и другое

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Множество полезных новшеств для Simple UI, в основном направленных на управление конфигурациями. Но также, например, по многочисленным просьбам решен вопрос с меню. Дополнение к основной статье https://infostart.ru/public/1153616/

02.02.2022    1470    informa1555    10    

Пак дополнений к Simple UI, декабрь 2021

Мобильная разработка Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Большой пакет полезностей и красоты. Примеры к этой статье в демо-базе в конфигурации «Примеры 6». Эта статья является дополнением к основной статье https://infostart.ru/public/1153616/

27.12.2021    1115    informa1555    0    

Использование ORM вместо работы с чистым SQL

Мобильная разработка Мобильная платформа Бесплатно (free)

Маленькая заметка про небольшой, но полезный релиз Simple UI. Дополнение к основной статье https://infostart.ru/public/1153616/

25.11.2021    2812    informa1555    10    

Мобильное приложение на 1С без никого... За полчаса...

Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

Мобильное приложение на коленке за полчаса без никого...

27.10.2021    12549    starik-2005    61    

Распознавание лиц

Мобильная разработка Мобильная платформа Бесплатно (free)

В новом релизе в режим дополненной реальности ActiveCV в платформе Simple UI добавлен новый тип детектора - распознавание лиц. Платформа детектирует лица в кадре, оправляет их на ваш сервер распознавания (написанный на открытом скрипте на python) получает ответ в виде идентификатора, а дальше отображает в видеопотоке и вписывает их в логику вашего приложения. Таким образом хранение семплов, выбор и настройки алгоритмов распознавания и сам сервер находится за пределами платформы, открыт и построен на бесплатных технологиях. Данный пост является дополнением к основной статье https://infostart.ru/public/1153616/

26.07.2021    3245    informa1555    9    

Мобильное приложение для учета личных финансов

Работа с интерфейсом Мобильная разработка Мобильная платформа Домашние учет и финансы Россия Управленческий учет Бесплатно (free)

Когда-то давно я написал свою программу по учету денег на мобильной платформе. Недавно я привел ее в человеческий вид, для своих знакомых, чтобы они тоже могли ей пользоваться. А сейчас решил выставить на обозрение общественности. Также поделюсь тем, как я веду учет личных финансов. Надеюсь, кому-то будет интересно.

08.07.2021    3458    coollerinc    21    

Фоновый сервис событий в Simple UI. Релиз Июнь 2021

Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

В новом релизе появился постоянно висящий в памяти сервис для обработки внешних событий – штрихкодов, голосового ввода, сообщений от других программ и внутренних процессов. Который может управлять программой поверх стандартных процессов – что то спрашивать голосом, что то озвучивать(ассистент), показывать диалоги, запускать процессы и экраны, отправлять управляющие команды. С помощью этого можно получить многоплановый интерфейс и более удобное взаимодействие с пользователем не только через экран и ввод, но и с помощью событий голосового ввода и других средств взаимодействия. Эта статья является дополнением к основной статье по Simple UI: https://infostart.ru/public/1153616/

15.06.2021    2896    informa1555    0    

Релиз Simple UI май 2021: плиточные экраны, плиточное главное меню, картинки из кеша, новое взаимодействие с ТСД и т.д.

Мобильная разработка Мобильная платформа Бесплатно (free)

В релизе Simple UI 5.75.00 добавлен новый вид интерфейса – «плитки» и возможность переопределения стартового экрана, а также другие нововведения. Также важное нововведение - новый режим взаимодействия с некоторыми моделями ТСД - через подписку на сообщения. Дополнение к основной статье: https://infostart.ru/public/1153616/

17.05.2021    3249    informa1555    0    

1С в мобильном и лицензионная политика

Мобильная разработка Мобильная платформа Бесплатно (free)

На екатеринбургском онлайн-митапе заместитель директора НП ППП и руководитель мобильного направления в фирме «1С» Анна Лавринова рассказала о мире мобайла в сфере 1С, примерах мобильных приложений и особенностях их лицензирования.

31.03.2021    2613    1C_lava    4    

Перевод с помощью Google Translate (мобильная версия, без API)

Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Пример реализации перевода с помощью Google Translate (мобильная версия, без API).

26.03.2021    1625    mars2005    7    

Как избавиться от горизонтальных серых разделителей (полосок) между элементами в форме мобильного приложения

Мобильная разработка Работа с интерфейсом Мобильная платформа Бесплатно (free)

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

17.03.2021    2261    kholodarev    9    

Большой пак дополнений март 2021: регламентные задания, распознавание дат и чисел, оповещения, поля с автозаполнением и многое, многое другое

Терминал сбора данных Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

Релиз с огромным количеством дополнений. Дополнение к основной статье Simple UI: https://infostart.ru/public/1153616/ Перечень изменений: 1. Оптическое распознавание дат в разных форматах 2. Оптическое распознавание чисел в разных форматах 3. Запуск кода из кода синхронно/асинхронно в фоне (Python) 4. Регламентные задания с расписанием от 1 мс 5. Всплывающие сообщения 6. Уведомления из любого контекста простые 7. Уведомления с ответом (для Anroid начиная с Oreo) 8. Поле ввода с событием на каждый символ 9. Поле ввода с автозаполнением (предварительно передается список) 10. Новый настраиваемый диалог ввода и работа с ответами диалога 11. Работа с речью и голосом из любого контекста А также изменения в документации. В данную статью не вошло описание системы группового администрирования и мониторинга.

11.03.2021    2785    informa1555    20    

Большой пакет дополнений для Simple UI - январь 2021

Мобильная разработка Мобильная платформа Бесплатно (free)

В этот раз множество полезных нововведений в мобильной платформе, исправлено все, о чем просили, а также прибрался в документации, актуализировал конструктор на 1С (с учетом текущих изменений, а также скорого выхода стационарного клиента) и переснял видео по-новому. Конструктор на платформе 1С:Предприятие 8.3.13.1865. Данный пост является дополнением к статье  https://infostart.ru/public/1153616/

22.01.2021    1632    informa1555    9    

Мобильный HTML-интерфейс, взгляд изнутри

Работа с интерфейсом Мобильная разработка Мобильная платформа Бесплатно (free)

Для реализации красивого интерфейса в мобильном приложении 1С удобно использовать возможности стека HTML / CSS / JavaScript. О том, как построить отзывчивый HTML-интерфейс с перехватом событий и выполнением JavaScript-кода в поле HTML-документа на форме 1С, рассказал сотрудник отдела мобильной разработки в компании «1С-Рарус» Роман Сухоруков.

28.12.2020    6046    ingeneerz@gmail.com    17    

Младший брат Большого Брата? (управляем мобильным устройством с компьютера)

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Сначала эта публикация задумывалась как небольшой обзор средств для облегчения жизни при мобильной разработке на 1С, но постепенно она переросла в ответ на вопрос, заданный в статье на Хабре: "Кто в доме хозяин: ПК, ноутбук, смартфон или… планшет?" Спойлер: это не они. Тех, кто заинтересовался, прошу под кат…

14.12.2020    1882    capitan    6    

Сравнение мобильных технологий сканирования штрихкодов

Сканер штрих-кода Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

В статье приведены результаты тестирования и сравнение популярных мобильных технологий сканирования штрихкодов

23.11.2020    3084    MaramOyka    8    

Ноябрьский релиз Simple UI: списки карточек для всех режимов работы и много полезного

Мобильная разработка Мобильная платформа Бесплатно (free)

В новом релизе Simple UI добавлены режимы представления информации в виде настраиваемого списка карточек (в альтернативу таблице или списку) для любых источников – формируемого из 1С, оффлайн и из REST-интерфейса напрямую. Расширен набор методов для обработки JSON в самостоятельном режиме и настройки для работы с HTTP запросами напрямую (не через настройки) а также множество других полезных нововведений. Основная статья по Simple UI : https://infostart.ru/public/1153616/ Платформа 1С: Предприятие для демо-базы : 8.3.14.1865.

09.11.2020    2057    informa1555    2    

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    11884    leobrn    82    

Обзор мобильного приложения 1С и лицензионная политика

Мобильная разработка Мобильная платформа Бесплатно (free)

Все больше задач и бизнес-процессов решается с помощью мобильных приложений. Одно подсчитывает калории, другое – показывает руководителю, сколько сделок заключено по итогам месяца, третье – используется как канал связи между клиентом и заказчиком. О плюсах разработки мобильных приложений на платформе 1С рассказала заместитель директора НП ППП, координатор по вопросам защиты ИС 1С Анна Лавринова.

12.10.2020    9403    1C_lava    51    

Воспроизведение аудиофайлов в мобильной платформе

Мобильная разработка Мобильная платформа Бесплатно (free)

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

17.09.2020    2321    QuirkyKot    7    

Тест скорости работы мобильной платформы 1С

Мобильная разработка HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

С помощью этого приложения вы можете измерить производительность своего устройства, используя для этого мобильную платформу 1С:Предприятие. Набор действий теста полностью повторяет аналогичный тест для стационарных ПК, поэтому результаты сравнимы.

14.09.2020    2677    capitan    25    

Team: Торговля + Склад + Производство (Мобильное приложение на платформе 1С)

Мобильная разработка Готовая продукция, работы и услуги Логистика, склад и ТМЦ Мобильная платформа Управленческий учет Бесплатно (free)

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

14.09.2020    3727    naypak    10    

Мобильное приложение Goods info

Мобильная разработка Платформа 1С v8.3 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Бесплатно (free)

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

04.09.2020    2247    hpi    9    

Авто-ежедневник (мобильное приложение на платформе 1С)

Мобильная разработка Мобильная платформа Автомобили, автосервисы Бесплатно (free)

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

25.08.2020    4196    capitan    29    

Чат и задачи с интерактивными объектами через PostgREST. Новый подход к управлению бизнес-процессами и интерфейсу

Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

В новой версии Simple UI появилась возможность организовать свой корпоративный мессенджер и список задач с 1С, но не напрямую, а через PostgreSQL, чтобы не забивать 1С всякими пустяками. Причем не просто чат и задачи, а с множеством уникальных фишек: прием задач прямо из ленты чата, формат статусов в сообщении, старт процессов из задач с предопределенным состоянием переменных и сохранение переменной в задаче, отправка сообщений и задач из процессов и другое. Т.е. это такой новый способ доставки и контроля задач до исполнителя. Кроме того, в этом паке обновлений еще полный инструментарий для работы с JSON.

17.07.2020    4039    informa1555    8    

Отладка мобильного клиента

Мобильная разработка Мобильная платформа Россия Бесплатно (free)

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

07.07.2020    7826    DmitrySinichnikov    8    

Как сделать телефонный справочник компании на мобильном телефоне для iOS

Мобильная разработка Мобильная платформа Бесплатно (free)

При разработке мобильных приложений под iOS возникает много трудностей, решение которых не очевидно. Как упростить разработку под iPhone и снизить стоимость лицензий Apple с учетом лицензионной политики 1С на конференции Infostart Event 2019 Inception рассказал главный специалист ФАУ «РМРС» Ракитин Александр.

26.06.2020    4885    rujiy_kot    5    

Безопасность мобильных приложений 1С, взгляд по диагонали

Информационная безопасность Мобильная разработка Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Что приходит первое в голову при словах «1С Предприятие»? Даже тем, кто далек от ИТ, представляется большущий компьютер (а тем, кто недалек, стойка двух-юнитных серверов), рядом слушает музыку сервера (как вариант просто музыку) сисадмин, за стеной в опен-спейсе менеджеры принимают заказы и бухгалтерия, сдающая отчетность. «Зарплата, зарплата!»: слышны их радостные крики. «И кадры»: уточняет HR. Да, все верно. Это 1С. Кто в теме, напомнит про крики не совсем приятные: «Все тормозит! Сделайте что-нибудь, #тыжпрограммист». И борющихся за живучесть ИТ-шников. В обычном офисном потоке дел, редко кто задумывается о безопасности. А тех, кто задумывается, прошу под кат…

05.06.2020    5709    capitan    34    

Хранение статистики публикаций автора сообщества Инфостарт ® (мобильное приложение И ++)

Мобильная разработка WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Инфостарт ® достаточно удобный в плане работы со своим личным кабинетом сайт. Но программисты тем и отличаются от большинства людей, что им хочется знать больше. Поэтому появилась конфигурация 1С (она же мобильное приложение 1С) для более подробного учета статистики публикаций: рейтинг, количество просмотров, количество комментариев в динамике и в разрезах.

24.04.2020    3354    capitan    15    

Автоматизация распределительных центров компании "Вкусвилл" на мобильной платформе 1С

Мобильная разработка Мобильная платформа Бесплатно (free)

Мобильная платформа 1С многим кажется неготовой к масштабным проектам. Ее опасаются использовать из-за нестабильности работы, багов, проблем со связью, сложностью при подборе оборудования и драйверов. Но доклад руководителя проектов в компании «Автоматизация и Консалтинг» Алексея Матюшкина на конференции INFOSTART EVENT 2019 Inception показал, что не все так плохо. За последние несколько лет мобильная платформа 1С сильно эволюционировала, ее функционал расширился, и теперь это хорошая основа для самого смелого проекта автоматизации.

13.04.2020    8002    Potroshitel    21    

Диеты: качество и креатив нового уровня

Инструкции пользователю Мобильная разработка Платформа 1С v8.3 Развлечения, искусство, спорт Бесплатно (free)

Приложение “Диеты” вернулось этой весной с мощным обновлением, в которое команда вложила не только время, но упорство и креативную идею.

06.04.2020    3330    Baksheev-Nikita    1    

Повышение удобства использования мобильного приложения

Мобильная разработка Мобильная платформа Конфигурации 1cv8 Казахстан Бесплатно (free)

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

03.04.2020    8252    user602678_maxipunchik    14