Мобильный клиент 1С: архитектура, публикация и подключение
Содержание
Работает мобильная версия 1С двумя способами. Мобильный клиент подключается к вашей рабочей базе через веб-сервер и показывает на смартфоне те же данные и документы, что и на компьютере. Автономное мобильное приложение держит собственную базу прямо на устройстве и живёт отдельно от сервера. Под «1С на телефоне» обычно имеют в виду первый вариант — мобильный клиент к опубликованной базе.
Архитектура у мобильного клиента клиент-серверная: приложение на телефоне общается не с базой напрямую, а с веб-сервером по HTTP(S). Настройка сводится к трём шагам — опубликовать базу, указать её адрес на устройстве и при необходимости включить автономный режим. Всё описанное ниже относится к платформе 8.3 не ниже 8.3.14 — именно начиная с этой версии мобильный клиент умеет работать с опубликованной информационной базой.
Мобильный клиент или автономное приложение
Это две разные вещи, и путаница между ними — причина половины вопросов.
Мобильный клиент — приложение на смартфоне, которое по сути работает как тонкий клиент, только через интернет . Данные хранятся на сервере, телефон лишь отображает формы и отправляет команды. Нет связи — нет работы (кроме заранее настроенного автономного режима).
Мобильное приложение на базе мобильной платформы — самостоятельный продукт со своей локальной базой на устройстве. Оно синхронизируется с центральной базой по расписанию через обмен или веб-сервисы, но между обменами работает полностью офлайн.
| Критерий | Мобильный клиент | Автономное приложение |
|---|---|---|
| Где лежат данные | На сервере | На самом устройстве |
| Нужен интернет | Да (кроме автономного режима) | Только для синхронизации |
| Как получают | Один клиент на все базы | Отдельное приложение, собирают под задачу |
| Когда выбирают | Доступ к рабочей базе на ходу | Полевая работа без связи |
Если вам нужно, чтобы кладовщик или торговый представитель видел актуальные остатки и проводил документы в той же базе, что и бухгалтерия, — это мобильный клиент. Отдельную сборку приложения заказывают, когда работа идёт в разъездах без стабильной сети.
Дальше речь в основном о мобильном клиенте — именно он отвечает за «работу 1С на смартфоне» в привычном понимании.
Как телефон связывается с сервером
Мобильный клиент не подключается к кластеру серверов 1С напрямую. Между ними стоит веб-сервер — Apache или IIS с установленным модулем расширения веб-сервера от 1С.
Цепочка выглядит так:
- На телефоне мобильный клиент формирует запрос и отправляет его по HTTP или HTTPS на адрес публикации (порт
80или443). - Веб-сервер принимает запрос и через свой модуль передаёт его в информационную базу — файловую или в кластер серверов 1С.
- Для клиент-серверной базы веб-сервер обращается к рабочим процессам кластера, получает ответ и возвращает его телефону.
Телефон общается только с веб-сервером, не с портами кластера 1540/1541 напрямую. Поэтому наружу (в интернет) должен смотреть именно веб-сервер, а порты кластера остаются внутри сети.
Всю черновую работу выполняет модуль расширения веб-сервера от 1С. При публикации в каталог веб-сервера кладётся файл настроек, который говорит модулю, с какой базой работать: с файловой по пути на диске или с базой кластера по имени сервера. Для телефона разница незаметна — он в обоих случаях видит один и тот же HTTP-адрес. Каждое подключение мобильного клиента открывает на сервере сеанс, как и обычный тонкий клиент, поэтому число одновременных подключений учитывают при расчёте нагрузки и лицензий.
Из этого следуют два практических правила:
- 📶 Веб-сервер должен быть доступен с того адреса, с которого выходит телефон. Если сотрудники подключаются из сотовой сети, публикация нужна с «белым» внешним адресом или через проброс портов/обратный прокси.
- 🔒 Для iOS подключение по HTTPS практически обязательно: политика App Transport Security блокирует открытый HTTP. Для Android и для стабильности в целом HTTPS тоже предпочтителен.
Как опубликовать базу для мобильного клиента
Публикация делается из Конфигуратора той базы, к которой будете подключаться.
- Запустите базу в режиме Конфигуратор.
- Откройте меню
Администрирование → Публикация на веб-сервере…. - Задайте имя виртуального каталога (латиницей, без пробелов), выберите веб-сервер и каталог публикации.
- В окне публикации включите флажок публикации мобильного клиента (в разных релизах он подписан как «Мобильный клиент» на отдельной вкладке или в списке флажков — название может отличаться).
- Нажмите Опубликовать.
Публикация перезаписывает файл настроек каталога (default.vrd). Если на этом веб-сервере уже опубликованы другие базы, не удаляйте их каталоги вручную и не переиспользуйте одно имя публикации для разных баз.
После публикации адрес базы складывается из адреса веб-сервера и имени каталога: https://адрес-сервера/имя-публикации. Этот адрес и вводят на устройстве.
Проверить публикацию проще всего так: откройте адрес базы в браузере телефона. Если страница 1С загружается и просит логин — веб-сервер доступен и сертификат в порядке. Если нет — проблема в сети или сертификате, а не в самом клиенте.
Как подключить базу на смартфоне
Для стандартного подключения нужен универсальный мобильный клиент.
- Установите приложение «1С:Предприятие» (мобильный клиент) из App Store или Google Play. Для своей сборки с фирменным именем используют собственное приложение, собранное через сборщик мобильных приложений.
- Откройте клиент и добавьте новую базу.
- В адрес вставьте ссылку публикации целиком:
https://адрес-сервера/имя-публикации. - Введите логин и пароль пользователя базы.
- Сохраните — база появится в списке, по нажатию клиент загрузит интерфейс.
Адрес удобно не набирать вручную, а передать сотруднику QR-кодом или ссылкой. Ошибка в одном символе адреса — самая частая причина «не подключается».
Если в базе несколько пользователей, для каждого заводят отдельную учётную запись с нужными правами — общий логин на всех усложняет разбор, кто что провёл.
Работа без связи: автономный режим
Мобильный клиент умеет частично работать без интернета, но это не включается само собой — автономный режим закладывает разработчик конфигурации.
Как это устроено:
- В конфигурации заранее определяют, какие данные доступны офлайн — справочники, часть документов, настройки.
- При подключении эти данные кэшируются на устройстве.
- Пока связи нет, пользователь работает с кэшем: просматривает справочники, создаёт документы.
- Когда связь восстанавливается, изменения синхронизируются с сервером.
Важные оговорки:
- Если конфигурация не готовилась под автономную работу, мобильный клиент без сети просто не запустит базу — он рассчитывает на постоянное соединение.
- Объём офлайн-данных ограничивают осознанно: тянуть всю базу на телефон не нужно и вредно для скорости.
- Конфликты изменений (один объект поправили и офлайн, и на сервере) разрешаются по правилам, заложенным разработчиком, — об этом стоит договориться заранее.
Простой пример. Торговый представитель утром в офисе открывает базу — на телефон подтягиваются справочник товаров, контрагенты и цены. В течение дня он в полях создаёт заказы, даже когда сеть пропадает. Вечером, поймав связь, синхронизирует: заказы уходят на сервер, а остатки и новые позиции прилетают обратно. Всё это работает только потому, что набор офлайн-данных и правила синхронизации заранее описаны в конфигурации.
Если задача — полноценная работа без связи большую часть времени, честнее смотреть не на автономный режим клиента, а на отдельное автономное приложение со своей базой.
Как подготовить конфигурацию под мобильные экраны
Та же база, что открывается на большом мониторе, на экране смартфона часто неудобна. Несколько приёмов, которые реально влияют на отдачу:
- 📱 Отдельные формы под мобильный клиент. Платформа позволяет держать для мобильного клиента свои варианты форм — с крупными элементами и минимумом колонок. Если их нет, клиент покажет обычную форму, и ею сложно пользоваться пальцами.
- 🎚 Функциональные опции. Лишние для мобильного сотрудника разделы и реквизиты скрывают через функциональные опции — интерфейс становится чище, а передаётся меньше данных.
- 📉 Меньше данных на форме. Динамические списки с сотнями колонок и необоснованными отборами на телефоне грузятся медленно. Для мобильной работы списки упрощают и ограничивают период.
- 🖼 Осторожнее с картинками и вложениями. Тяжёлые присоединённые файлы по мобильной сети тянутся долго и расходуют трафик. Их показ делают по запросу, а не сразу.
Правки форм и функциональных опций — это изменение конфигурации. Если база на поддержке типового решения, такие доработки делают через расширение конфигурации, а не снятием с поддержки.
Отдельно про скорость. На мобильной сети главный враг — объём передаваемых данных и число обращений к серверу. Чем легче форма и чем меньше на ней автоматически подгружается, тем отзывчивее клиент. Поэтому списки ограничивают периодом, тяжёлые отчёты на телефон обычно не выносят, а фоновые опросы сервера сводят к минимуму.
Цель простая: мобильному сотруднику нужны три-пять действий, которые он делает чаще всего. Под них и затачивают интерфейс, остальное убирают с глаз.
Почему не подключается: диагностика и журналы
Большинство проблем — на стыке «телефон → веб-сервер», а не в самой 1С. Разбирать удобно от простого к сложному.
Сначала — быстрая проверка:
- Откройте адрес публикации в браузере телефона. Страница не грузится — дело в сети, адресе или сертификате, клиент тут ни при чём.
- Проверьте тот же адрес с компьютера в той же и в другой сети — так видно, доступен ли веб-сервер снаружи вообще.
Где смотреть журналы:
- На сервере — технологический журнал (
logcfg.xml) и логи самого веб-сервера (Apache/IIS). Там видно, дошёл ли запрос и на каком шаге отвалился. - На устройстве — мобильный клиент показывает текст ошибки на экране; его и берут за отправную точку.
Частые ошибки и что с ними делать:
Прежде чем перезапускать веб-сервер или службу кластера ради диагностики, помните: перезапуск оборвёт сеансы всех работающих пользователей. Делайте это в нерабочее время или предупредив коллег.
Отдельно про версии: сравнивайте номер платформы базы и мобильного клиента — он должен быть не ниже требуемого. Клиент из магазина обновляется сам, а платформа на сервере — нет, поэтому рассинхрон идёт обычно со стороны сервера.