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

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Вариант 1: Мобильный клиент — самый быстрый путь

Рассмотрим наиболее простой вариант, который появился в версии 8.3.12. Мобильный клиент — это не отдельное приложение в привычном понимании, а тонкий клиент для мобильного устройства. Он напрямую подключается к вашей центральной базе (ЦБ) и отображает формы «на лету».

Проанализируем основные преимущества этого подхода:

  1. Отсутствие обмена как такового: Вам не нужно писать правила конвертации или настраивать планы обмена. Данные всегда актуальны, так как вы работаете напрямую с базой.
  2. Единая конфигурация: Вы разрабатываете логику один раз в основной базе.
  3. Минимальные трудозатраты: Это идеальное решение, если пользователям нужен оперативный доступ к данным при наличии стабильного интернета.

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

Вариант 2: Мобильный клиент с автономным режимом (Offline)

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

Разберем по шагам, как это функционирует:

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

Это значительно упрощает жизнь разработчику, так как большая часть логики обмена скрыта «под капотом» системы.

Вариант 3: Мобильная платформа и самописный обмен через HTTP/JSON

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

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


// Пример формирования JSON для отправки данных
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ДанныеДляОтправки = Новый Структура("Артикул, Количество", "00001", 10);
ЗаписатьJSON(ЗаписьJSON, ДанныеДляОтправки);
СтрокаJSON = ЗаписьJSON.Закрыть();

// Отправка через HTTP-соединение
Соединение = Новый HTTPСоединение("myserver.ru", , "user", "pass");
Запрос = Новый HTTPЗапрос("/hs/mobile_exchange/v1/sync");
Запрос.УстановитьТелоИзСтроки(СтрокаJSON);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);

Проанализируем ситуацию с промежуточными базами. В современных реалиях использование промежуточной базы (как это практиковалось в 2016 году) считается избыточным. Прямое обращение мобильного устройства к опубликованному HTTP-сервису основной базы через защищенное HTTPS-соединение является безопасным и производительным решением.

Вариант 4: Планы обмена и БСП

Для крупных проектов с тысячами мобильных устройств рекомендуется использовать Планы обмена совместно с механизмами Библиотеки стандартных подсистем (БСП). БСП содержит подсистему «Обмен данными», которая уже адаптирована под мобильные устройства.

Что это дает разработчику:

Инициация обмена со стороны сервера: Push-уведомления

Часто возникает вопрос: может ли сервер заставить мобильное устройство начать обмен? Ответ — да. Для этого используются Push-уведомления (через Firebase Cloud Messaging или Apple Push Notification service).

Рассмотрим этот механизм подробнее:

  1. Сервер 1С отправляет на устройство специальное «невидимое» (data-message) уведомление.
  2. Мобильное приложение получает его даже в фоновом режиме.
  3. При получении уведомления срабатывает обработчик, который запускает фоновое задание обмена данными.

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

Важные аспекты разработки интерфейса

Не стоит забывать, что мобильная разработка — это не только обмен данными, но и специфический UI. Как отмечено в обсуждении, формы мобильного клиента нужно разрабатывать отдельно. Вы не сможете просто открыть форму списка с 20 колонками на экране смартфона. Необходимо использовать:

Подведем итоги

Выясним, какой путь выбрать именно вам:

  1. Если нужен быстрый старт и всегда есть интернет — выбирайте Мобильный клиент.
  2. Если критична работа в офлайне, но не хочется писать сложные обмены — используйте Мобильный клиент с автономным режимом.
  3. Если требуется максимальная гибкость и интеграция с оборудованием — ваш выбор Мобильная платформа + HTTP-сервисы (JSON).
  4. Для высоконагруженных систем с большим количеством пользователей обязательно применяйте Планы обмена и механизмы БСП для контроля регистрации изменений.

Современная платформа 1С предоставляет все необходимые инструменты для создания качественных мобильных решений. Главное — правильно оценить требования к автономности и сложности бизнес-логики на стороне клиента еще на этапе проектирования системы.

← На главную