Когда вы только начинаете осваивать мобильную разработку на платформе 1С, возникает закономерный вопрос: как организовать работу приложения, если все данные должны храниться не на самом устройстве, а на удаленном сервере? Например, у вас есть домашний сервер или хостинг, и вы хотите создать простое приложение для личных нужд, такое как учет финансов или ведение списка покупок. Давайте подробно разберем, с чего начать, какие технологии использовать и как выстроить архитектуру такого решения.
Первое и самое важное решение, которое нужно принять, — это выбор архитектуры. От него будет зависеть вся дальнейшая логика разработки. Платформа 1С предлагает несколько подходов, и для задачи с удаленной базой данных рассмотрим три основных варианта.
Это самый простой в реализации вариант. Мобильный клиент представляет собой, по сути, "тонкий клиент" для вашей основной базы 1С. Он работает только в режиме онлайн и требует постоянного и стабильного интернет-соединения. Функционал в таком приложении будет практически полностью повторять то, что доступно в настольной версии. Для его работы достаточно опубликовать вашу основную конфигурацию на веб-сервере. Этот вариант подходит для корпоративных приложений, где сотрудники всегда находятся в зоне действия сети.
Гибридный вариант, который позволяет работать как онлайн, так и офлайн. При наличии связи приложение работает как мобильный клиент, а при ее потере переходит в автономный режим, используя данные, предварительно загруженные на устройство. Когда соединение восстанавливается, изменения синхронизируются с основной базой. Это более сложная в настройке архитектура, но она обеспечивает большую отказоустойчивость.
Это наиболее гибкий и предпочтительный вариант для создания уникальных приложений, таких как ваш "план покупок". В этом случае вы создаете отдельную, независимую конфигурацию специально для мобильного устройства. Приложение работает преимущественно в офлайн-режиме, а обмен данными с "большой" серверной базой настраивается отдельно через механизмы синхронизации. Это позволяет создать легкое приложение с оптимизированным интерфейсом и логикой, не перегружая его лишними функциями.
Для вашей задачи — приложения для личных финансов — третий вариант является наилучшим выбором. Он дает полный контроль над логикой и позволяет приложению работать быстро и без постоянного подключения к интернету.
Поскольку данные будут храниться на сервере, нам нужна серверная часть (бэкенд), которая будет обрабатывать запросы от мобильного приложения. Рассмотрим несколько способов ее организации.
Это классический подход в экосистеме 1С. Вы берете свою основную базу данных (например, самописную конфигурацию или стандартную, доработанную под ваши нужды) и публикуете ее на веб-сервере, например, Apache или IIS. После публикации база становится доступна извне по протоколу HTTP/HTTPS. Мобильное приложение сможет обращаться к ней, используя встроенные в 1С механизмы.
Для обмена данными здесь чаще всего используют HTTP-сервисы. Это современный подход, основанный на принципах REST API, который идеально подходит для мобильных приложений. Он позволяет обмениваться данными в легковесном формате JSON, что значительно экономит трафик по сравнению с устаревшими Web-сервисами (SOAP), работающими с громоздким XML.
Что нужно сделать:
HTTP-сервисы для каждого действия (например, "получить список покупок", "добавить новую трату").Это отличная альтернатива для 1С-разработчика. OneScript — это независимая реализация языка 1С, которая позволяет выполнять скрипты без установки тяжеловесной платформы «1С:Предприятие». Вы можете написать всю серверную логику на привычном вам языке 1С.
С помощью OneScript и его библиотек можно очень быстро создать легковесный веб-сервер, который будет предоставлять REST API для вашего мобильного приложения. Это идеальный вариант, если вам не нужна полная функциональность платформы 1С на сервере, а требуется лишь простая прослойка для работы с базой данных (например, MySQL, как в вашем случае).
Преимущества этого подхода:
Независимо от того, какой бэкенд вы выберете, мобильное приложение будет общаться с ним через 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С имеет свою специфику, и чтобы процесс был более гладким, придерживайтесь нескольких рекомендаций:
HTTP-сервисам и формату JSON для обмена данными. Это стандарт де-факто в современной веб- и мобильной разработке..apk (для Android) и .ipa (для iOS) за несколько минут. Это сэкономит массу времени и нервов.Начав с простого приложения и постепенно усложняя задачи, вы сможете освоить все тонкости мобильной разработки на платформе 1С и создавать функциональные и надежные решения.