Мобильная 1С изнутри: сервер, обмен данными и путь приложения на телефон
Содержание
1С на телефоне работает одним из двух способов. Мобильный клиент — это «тонкий клиент» для Android и iOS: он ходит в основную базу через опубликованный веб-сервер и почти ничего не хранит у себя. Мобильное приложение — отдельная конфигурация на мобильной платформе 1С:Предприятия со своей базой прямо на устройстве; оно работает без сети и периодически обменивается данными с центральной базой.
Мобильный клиент выбирают, когда сеть есть всегда, а дорабатывать конфигурацию не хочется. Мобильное приложение — когда сотрудник часто без связи: торговый представитель, курьер, кладовщик на дальнем складе. Настройка, архитектура и сценарии у этих вариантов разные, поэтому ниже они разобраны раздельно.
| Что сравниваем | Мобильный клиент | Мобильное приложение |
|---|---|---|
| Где хранятся данные | В основной базе на сервере | В своей базе на устройстве |
| Нужна ли сеть | Да, постоянно (автономный режим — только если его предусмотрели в конфигурации) | Только для синхронизации |
| Доработка | Адаптация форм основной конфигурации | Отдельная мобильная конфигурация + обмен |
| Как попадает на телефон | Приложение из магазина, затем адрес базы | Сборка APK/AAB или IPA из своей конфигурации |
| Кто обычно выбирает | Офис, руководитель, удалённый бухгалтер | Полевые сотрудники, склады, выездная торговля |
Архитектура 1С Мобайл: кто с кем и через что общается
В обоих вариантах центр системы — обычная информационная база на 1С:Предприятии 8.3, файловая или клиент-серверная. Телефон с ней напрямую не соединяется. Между ними всегда стоит веб-сервер — Apache или IIS — с установленным модулем расширения веб-сервера 1С.
Схема мобильного клиента:
- 📱 Мобильный клиент отправляет запросы по HTTP или HTTPS на адрес публикации, например
https://erp.firma.ru/base/. - 🌐 Веб-сервер передаёт запрос модулю 1С.
- 🖥️ Модуль работает с базой: для клиент-серверной — через агент сервера 1С (порт 1540) и далее через менеджер кластера и рабочие процессы.
- 📤 Результат — формы, списки, отчёты — возвращается на телефон. Код на сервере выполняется так же, как для тонкого клиента .
Схема мобильного приложения другая:
- 📱 На устройстве установлено приложение, внутри — мобильная платформа и файловая база.
- 🔁 Для обмена приложение вызывает веб-сервис или HTTP-сервис основной базы, опубликованный на том же веб-сервере.
- 🗂️ Основная база отдаёт изменения из плана обмена и принимает данные с устройства.
Получается, что «сервер приложений» для мобильной 1С — это связка «веб-сервер + публикация + сервер 1С». Отдельного специального сервера для мобильных устройств платформа не требует.
Сеанс мобильного клиента занимает лицензию так же, как сеанс тонкого клиента. Планируя 20 мобильных пользователей, учитывайте их в количестве клиентских лицензий основной базы.
Публикация базы и настройка мобильного клиента
Без публикации на веб-сервере ни один из вариантов не заработает. Порядок одинаковый.
Шаг 1. Подготовьте веб-сервер
- Установите Apache или включите роль IIS на Windows Server.
- При установке платформы 1С отметьте компонент «Модули расширения веб-сервера».
- Разрядность модуля должна совпадать с разрядностью веб-сервера: 64-битный Apache — 64-битный модуль.
Шаг 2. Опубликуйте базу
- Запустите Конфигуратор от имени администратора Windows.
- Откройте
Администрирование → Публикация на веб-сервере. - Укажите имя публикации (оно станет частью адреса), веб-сервер и каталог.
- Для мобильного клиента достаточно публикации самой базы. Для мобильного приложения дополнительно отметьте нужные веб-сервисы или HTTP-сервисы.
- Нажмите «Опубликовать» и перезапустите веб-сервер, если Конфигуратор это предложит.
Проверка простая: откройте адрес публикации в браузере компьютера. Если появилось окно входа в 1С — публикация работает.
Перезапуск Apache или IIS обрывает текущие веб-сеансы: пользователи браузера и мобильных клиентов выпадут из базы. Делайте это вне рабочего времени или предупредите людей.
Шаг 3. Подключите телефон
- Установите приложение мобильного клиента 1С:Предприятия из магазина приложений (RuStore, Google Play или App Store — набор зависит от страны и устройства).
- Добавьте информационную базу и укажите адрес публикации целиком, вместе с именем базы.
- Введите логин и пароль пользователя информационной базы.
Типовые конфигурации 1С последних редакций уже адаптированы под мобильный клиент: у них есть упрощённые формы для узкого экрана. Самописные формы на телефоне выглядят как есть, и широкие таблицы придётся листать вбок.
Синхронизация данных и офлайн-режим
Здесь кроется основная разница. Мобильный клиент без сети бесполезен, если разработчик не включил в конфигурации автономный режим. Мобильное приложение изначально рассчитано на работу без связи.
Как устроен обмен мобильного приложения
Обычно используют планы обмена. В основной базе для каждого устройства создаётся отдельный узел. Когда менеджер в офисе меняет цены или остатки, платформа регистрирует изменения для всех узлов, где это настроено.
Цикл синхронизации выглядит так:
- 📲 Приложение вызывает метод веб-сервиса основной базы, передаёт код своего узла и номер последнего принятого сообщения.
- 📦 Основная база выбирает зарегистрированные изменения и сериализует их в XML.
- 📥 Приложение записывает данные в свою базу и подтверждает приём.
- 📤 Затем выгружает своё: заказы, фото, отметки о доставке.
- ✅ После подтверждения регистрация изменений удаляется, и в следующий раз они не придут повторно.
Нумерация сообщений защищает от потерь. Если связь оборвалась на шаге 3, подтверждения не было — значит, при следующем сеансе пакет придёт снова.
Что важно продумать заранее
- 🎯 Объём. Не отправляйте на телефон весь справочник номенклатуры на 80 тысяч позиций. Фильтруйте по складу, маршруту или менеджеру.
- ⚔️ Конфликты. Решите, чья правка главнее, если документ изменили и в офисе, и на устройстве. Обычно приоритет отдают центральной базе.
- 🆔 Уникальность. Документы, созданные на телефоне, нумеруйте с префиксом устройства, чтобы номера не пересекались.
- 🖼️ Файлы. Фото и подписи клиентов передавайте отдельными вызовами, а не одним огромным пакетом.
Запускайте синхронизацию в фоне по таймеру и вручную по кнопке. Сотрудник должен видеть время последнего успешного обмена — это снимает половину вопросов в поддержку.
Требования к инфраструктуре и защита данных
Мобильная 1С почти всегда открыта в интернет. Поэтому инфраструктура важнее, чем для офисной базы.
| Компонент | Требование |
|---|---|
| Веб-сервер | Apache или IIS с модулем 1С той же версии, что и сервер 1С |
| Протокол | Только HTTPS с сертификатом от доверенного центра |
| Сервер 1С | Версия платформы 8.3, совпадающая с модулем веб-сервера |
| Канал | Стабильный внешний IP или доменное имя, открытый порт 443 |
| Устройства | Актуальные Android или iOS, поддерживаемые текущей мобильной платформой |
Минимальный набор мер безопасности
- 🔒 HTTPS. Мобильные ОС по умолчанию не доверяют самоподписанным сертификатам. Возьмите сертификат Let’s Encrypt или купленный — так вы заодно избавитесь от ошибок подключения.
- 👤 Отдельный пользователь для обмена. Веб-сервис работает от имени пользователя информационной базы. Дайте ему роль только на нужные объекты, без полных прав.
- 🚫 Ничего лишнего наружу. Публикуйте только ту базу и те сервисы, что нужны телефонам. Тестовые и копии баз в интернет не выставляйте.
- 🧱 Сетевой экран. Наружу открыт только 443. Порты кластера 1540, 1541 и диапазон рабочих процессов должны быть доступны лишь внутри сети.
- 📵 Утерянный телефон. Заблокируйте пользователя ИБ или пометьте узел обмена, чтобы устройство больше не получало данные.
Публикация без HTTPS передаёт логин и пароль пользователя 1С открытым текстом. В общественном Wi-Fi их легко перехватить.
Разработка и отладка мобильного приложения
Мобильное приложение пишут в обычном Конфигураторе. Отдельной среды разработки нет.
Как начать
- Создайте новую конфигурацию или откройте существующую.
- В свойствах корня конфигурации найдите «Назначения использования» и отметьте мобильное устройство.
- После этого Конфигуратор начнёт подсвечивать объекты и методы, недоступные на мобильной платформе. Например, на устройстве нет регистров бухгалтерии и некоторых видов отчётов.
- Разделите код по директивам компиляции: мобильная платформа исполняет модули локально, но требования к контексту клиента и сервера сохраняются.
Как запустить на телефоне в режиме разработки
Для отладки не нужно собирать APK после каждой правки.
- Установите на устройство мобильную платформу для разработчика. Она входит в дистрибутив мобильной платформы той же версии.
- В Конфигураторе выгрузите мобильное приложение:
Конфигурация → Мобильное приложение → Публиковать. Публикация ляжет на веб-сервер. - На устройстве в платформе разработчика укажите адрес этой публикации. Приложение загрузится и обновится при следующей публикации.
- Для пошаговой отладки включите в Конфигураторе отладку по протоколу HTTP и разрешите её на устройстве. Компьютер и телефон должны видеть друг друга по сети.
Сборка для распространения
Готовое приложение собирают конфигурацией «Сборщик мобильных приложений» из комплекта мобильной платформы.
- 🤖 Android: нужны JDK, Android SDK и ключ подписи. Результат — APK для прямой установки или AAB для публикации в магазине.
- 🍏 iOS: нужен компьютер Mac с Xcode и аккаунт разработчика Apple. Собрать IPA на Windows нельзя.
- 🔑 Ключ подписи Android храните в надёжном месте. Потеряете его — обновлять приложение в магазине под тем же именем станет невозможно.
Версия мобильной платформы, на которой собрано приложение, должна поддерживать все объекты конфигурации. Номер сборщика и платформы держите одинаковым, иначе сборка остановится с ошибкой.
Ошибки 1С Мобайл и как их устранять
Большинство проблем сводится к трём местам: публикация, сертификат и права пользователя. Ниже — диагностика по симптому.
Если не помогло
- 🧪 Сделайте простой HTTP-сервис с одним методом, который возвращает строку «ok». Если и он не отвечает с телефона — проблема в сети или публикации, а не в коде обмена.
- 📜 Посмотрите журнал веб-сервера: для Apache это
access.logиerror.log, для IIS — журналы в каталогеinetpub\logs. Видно, дошёл ли запрос вообще. - 📶 Проверьте с телефона через мобильный интернет, а не через офисный Wi-Fi: часто снаружи адрес недоступен из-за правил проброса портов.