Разработка собственного учетного решения на платформе 1С часто сталкивается с необходимостью оперативного доступа к данным из любой точки мира. Типичная проблема: как сделать так, чтобы данные на компьютере и в телефоне были актуальны "на лету", без ручного запуска синхронизации, и при этом обеспечить работу системы 24/7 без постоянно включенного домашнего ПК. В этой статье мы подробно разберем архитектурные решения, варианты хостинга и технические нюансы реализации мобильного доступа.
Прежде всего, разберем, какой инструмент разработки выбрать. В среде 1С существует два принципиально разных подхода к мобильной автоматизации.
1. Обычный мобильный клиент. Рассмотрим этот вариант как самый простой в реализации. По сути, мобильный клиент — это тонкий клиент 1С, адаптированный под экран смартфона. Проанализируем его особенности:
Видимость, Состав командной панели).2. Мобильное приложение (с обменом). Выясним, почему этот вариант сложнее. Мобильное приложение имеет свою собственную локальную базу данных (на платформе мобильной версии 1С). Чтобы данные попали на основной сервер, нужно настраивать обмен. Однако, чтобы обмен работал "на лету", можно использовать автоматическую синхронизацию через HTTP-сервисы или OData.
3. Мобильный клиент с автономным режимом. Это современный гибридный вариант. Он позволяет работать напрямую с базой при наличии сети, но кэширует необходимые данные для работы офлайн. Разберем подробнее: это требует от программиста описания правил синхронизации в самой конфигурации, но обеспечивает наилучший пользовательский опыт.
Если у вас нет собственного сервера, работающего круглосуточно, рассмотрим альтернативные варианты размещения вашей самописной конфигурации.
Облачная аренда (1C:Ready или аналоги). Существуют провайдеры, предоставляющие готовую инфраструктуру 1С. Вы просто загружаете свою базу (файл .dt), и провайдер берет на себя вопросы публикации в вебе и обеспечения доступности. Это проще, чем администрировать сервер самостоятельно, но может быть дороже в долгосрочной перспективе.
Виртуальный сервер (VDS/VPS). Проанализируем этот путь как наиболее гибкий. Вы арендуете виртуальную машину (на Windows или Linux). Для работы одной-двух баз и пары пользователей достаточно минимальных характеристик: 2-4 ГБ оперативной памяти и 2 ядра процессора.
Если вы выбрали путь создания легкого мобильного приложения, которое должно обмениваться данными с основной базой, разберем использование HTTP-сервисов. Это современный стандарт общения между приложениями.
Вместо классического 1С-овского обмена (через файлы или планы обмена), мы можем использовать HTTP-сервисы. Рассмотрим пример создания простого сервиса для получения данных о товаре:
// В модуле HTTP-сервиса
Функция ПолучитьОстатокТовара(Запрос)
Артикул = Запрос.ПараметрыURL.Получить("Артикул");
Остаток = РегистрыНакопления.ТоварыНаСкладах.Остаток(Артикул);
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(Строка(Остаток));
Возврат Ответ;
КонецФункции
Выясним, что такое OData. Это встроенный в 1С механизм, который позволяет обращаться к любым объектам базы через веб-запросы без написания кода. Достаточно включить одну галочку в настройках публикации, и ваша база начнет отвечать на стандартные GET/POST запросы. Это идеальный вариант для быстрого старта мобильной разработки.
Чтобы ваш телефон "увидел" базу, находящуюся на сервере (VDS), ее необходимо опубликовать. Посмотрим на этот процесс по шагам:
http://ваш_ip/my_base).Публиковать тонкий клиент и веб-клиент, а также Публиковать стандартный интерфейс OData, если планируете использовать REST.Важный нюанс: Для доступа извне вам понадобится статический IP-адрес на сервере. Если вы арендуете VDS, он предоставляется автоматически.
Вывод базы в открытый интернет — это всегда риск. Проанализируем, как защитить свои данные:
Let's Encrypt.Если ваша задача — быстро начать работу со своей конфигурацией с телефона без сложного программирования обменов, мы рекомендуем следующий путь:
Арендуйте недорогой VDS на Linux, установите сервер 1С и Apache, опубликуйте базу и используйте стандартный Мобильный клиент 1С. Это обеспечит вам работу в режиме реального времени, отсутствие конфликтов при синхронизации и доступ к вашим данным 24 часа в сутки.