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

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

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

Шаг 1. Выбираем архитектуру будущего приложения

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

  1. Мобильный клиент

    Это самый простой в реализации вариант. Мобильный клиент представляет собой, по сути, "тонкий клиент" для вашей основной базы 1С. Он работает только в режиме онлайн и требует постоянного и стабильного интернет-соединения. Функционал в таком приложении будет практически полностью повторять то, что доступно в настольной версии. Для его работы достаточно опубликовать вашу основную конфигурацию на веб-сервере. Этот вариант подходит для корпоративных приложений, где сотрудники всегда находятся в зоне действия сети.

  2. Мобильный клиент с автономным режимом

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

  3. Полноценное мобильное приложение на мобильной платформе

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

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

Шаг 2. Готовим серверную часть (бэкенд)

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

Вариант 1: Публикация основной базы 1С

Это классический подход в экосистеме 1С. Вы берете свою основную базу данных (например, самописную конфигурацию или стандартную, доработанную под ваши нужды) и публикуете ее на веб-сервере, например, Apache или IIS. После публикации база становится доступна извне по протоколу HTTP/HTTPS. Мобильное приложение сможет обращаться к ней, используя встроенные в 1С механизмы.

Для обмена данными здесь чаще всего используют HTTP-сервисы. Это современный подход, основанный на принципах REST API, который идеально подходит для мобильных приложений. Он позволяет обмениваться данными в легковесном формате JSON, что значительно экономит трафик по сравнению с устаревшими Web-сервисами (SOAP), работающими с громоздким XML.

Что нужно сделать:

  1. Настроить веб-сервер (Apache или IIS).
  2. Опубликовать информационную базу 1С.
  3. В конфигурации 1С создать HTTP-сервисы для каждого действия (например, "получить список покупок", "добавить новую трату").
  4. Обеспечить безопасность соединения, настроив HTTPS.

Вариант 2: Бэкенд на OneScript

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

С помощью OneScript и его библиотек можно очень быстро создать легковесный веб-сервер, который будет предоставлять REST API для вашего мобильного приложения. Это идеальный вариант, если вам не нужна полная функциональность платформы 1С на сервере, а требуется лишь простая прослойка для работы с базой данных (например, MySQL, как в вашем случае).

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

Шаг 3. Взаимодействие с сервером из мобильного приложения

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

Основной объект для работы — HTTPСоединение. Давайте посмотрим на примерный алгоритм отправки запроса и получения ответа.

Предположим, нам нужно получить с сервера список покупок в формате JSON.


// Создаем безопасное соединение с сервером
// Укажите ваш сервер, порт и, при необходимости, пользователя и пароль
Соединение = Новый HTTPСоединение("myserver.com", 443,,,,,, Новый ЗащищенноеСоединениеOpenSSL());

// Создаем HTTP-запрос
// Первый параметр - относительный путь к методу нашего HTTP-сервиса
Запрос = Новый HTTPЗапрос("/api/shoppinglist/get");

// Выполняем GET-запрос для получения данных
Ответ = Соединение.Получить(Запрос);

// Проверяем, что запрос выполнен успешно (код 200)
Если Ответ.КодСостояния = 200 Тогда
    // Тело ответа содержит данные, например, в формате JSON
    ТекстJSON = Ответ.ПолучитьТелоКакСтроку();
    
    // Преобразуем JSON в объекты 1С для дальнейшей работы
    // Важно: на мобильной платформе нужно использовать ПрочитатьJSON с параметром Ложь
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(ТекстJSON);
    ПрочитанныеДанные = ПрочитатьJSON(ЧтениеJSON, Ложь);
    
    // Далее обрабатываем полученные данные
    Для Каждого Элемента Из ПрочитанныеДанные.Элементы Цикл
        // ... логика обработки ...
        Сообщить("Нужно купить: " + Элемента.Наименование);
    КонецЦикла;
    
Иначе
    // Обрабатываем ошибку
    Сообщить("Ошибка получения данных с сервера. Код: " + Ответ.КодСостояния);
    Сообщить(Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;

Таким же образом можно отправлять данные на сервер (например, для создания новой покупки), используя метод ОтправитьДляОбработки() и передавая данные в теле запроса.

С чего начать и как избежать "мира костылей"

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

  1. Начните с документации. Лучшая отправная точка — официальный ресурс 1С:ИТС. Раздел, посвященный введению в разработку мобильных приложений, даст вам фундаментальные знания.
  2. Используйте современные подходы. Отдавайте предпочтение HTTP-сервисам и формату JSON для обмена данными. Это стандарт де-факто в современной веб- и мобильной разработке.
  3. Автоматизируйте сборку. Настройка окружения для сборки приложений (Android Studio, Xcode) — сложный и трудоемкий процесс. Фирма "1С" предоставляет облачный сервис сборки, который позволяет загрузить вашу конфигурацию и получить готовые файлы .apk (для Android) и .ipa (для iOS) за несколько минут. Это сэкономит массу времени и нервов.
  4. Тщательно планируйте обмен данными. Если вы выбрали архитектуру с офлайн-режимом, уделите особое внимание проектированию планов обмена. Неправильно настроенная синхронизация — частый источник ошибок и проблем при обновлениях.

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

← На главную