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

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

При разработке мобильных решений на платформе 1С:Предприятие 8 разработчики часто сталкиваются с вопросом: почему нельзя просто скачать из Google Play или App Store универсальное приложение (аналог тонкого клиента для ПК), ввести адрес своей базы и начать работать? В рамках данной статьи мы проанализируем архитектурные особенности мобильной платформы, разберем разницу между мобильным приложением и мобильным клиентом, а также выясним, что такое дайджест конфигурации и почему он критически важен для публикации в магазинах.

Архитектурный барьер: Почему нет «универсального» клиента в сторах?

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

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

Различие между мобильным приложением и мобильным клиентом

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

  1. Мобильное приложение (МП): Это автономное решение. Оно содержит собственную базу данных (на технологии SQLite) и работает независимо от наличия интернета. Логика исполняется непосредственно на устройстве. Для работы с основной базой требуется настройка синхронизации (через веб-сервисы или HTTP-сервисы).
  2. Мобильный клиент (МК): Это «зеркало» серверной базы. Он не имеет своей базы данных и работает только в режиме онлайн. Интерфейс транслируется с сервера, но отрисовывается нативными элементами управления мобильной ОС. Именно этот вариант наиболее близок к понятию «тонкий клиент».

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

Механизм дайджеста конфигурации

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

Дайджест — это своего рода «цифровой слепок» структуры ваших метаданных. В него входят:

При сборке мобильного клиента с помощью специального инструмента («Сборщик мобильных приложений») в исполняемый файл (.apk или .ipa) «вшивается» открытый ключ. Сама конфигурация на сервере подписывается закрытым ключом. При каждом подключении Мобильный клиент сверяет присланный сервером дайджест со своим внутренним состоянием.

Важный нюанс: если вы измените программный код в модуле (например, поменяете алгоритм расчета цены в процедуре ПриИзменении), дайджест не изменится. Это значит, что такие правки можно вносить на сервере без перевыпуска приложения в сторах. Однако если вы добавите новый реквизит в справочник или создадите новый документ — дайджест изменится, и старое мобильное приложение откажется подключаться к базе, требуя обновления из магазина.

Процесс сборки и публикации

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

  1. Подготовка конфигурации: В свойствах конфигурации должна быть включена возможность работы с мобильным клиентом. Необходимо разработать управляемые формы, адаптированные под малые экраны (использование групп, прокрутки, оптимизация списков).
  2. Публикация на веб-сервере: Информационная база должна быть опубликована на IIS или Apache. Мобильный клиент будет обращаться к базе по URL-адресу этой публикации.
  3. Использование Сборщика приложений: Это отдельная конфигурация от 1С. В ней вы указываете путь к Android SDK или Xcode (для iOS), загружаете иконки, указываете адрес базы и формируете файл установки.
  4. Подпись приложения: Для Android это можно сделать самостоятельно (создав keystore), для iOS требуется платный аккаунт разработчика Apple (Apple Developer Program).

Альтернативные способы мобильного доступа

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

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

2. Использование HTTP-сервисов
Вы можете написать свое мобильное приложение (не на 1С, а на Flutter, React Native и т.д.) или легкое автономное приложение на 1С, которое будет общаться с основной базой через HTTP-сервисы. В этом случае вы сами определяете формат обмена (обычно JSON) и полностью контролируете интерфейс.

Пример простейшего GET-запроса для получения списка номенклатуры через HTTPСервис:


Функция СписокНоменклатурыПолучить(Запрос)
    УстановитьПривилегированныйРежим(Истина);
    ЗапросБД = Новый Запрос("ВЫБРАТЬ Ссылка.Наименование ИЗ Справочник.Номенклатура");
    Результат = ЗапросБД.Выполнить().Выгрузить();
    
    ДанныеJSON = Новый Массив;
    Для Каждого Строка Из Результат Цикл
        ДанныеJSON.Добавить(Строка.Наименование);
    КонецЦикла;
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, ДанныеJSON);
    
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
    Возврат Ответ;
КонецФункции

3. Сервис «1С:Кабинет сотрудника» или «1С:Заказы»
Для типовых задач (отпуска, расчетные листки, простые заказы) 1С уже выпустила готовые приложения. Если ваша задача вписывается в их функционал, это сэкономит массу времени на разработку и поддержку.

Итоги и рекомендации

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

← На главную