Разработка современной экосистемы предприятия часто требует тесной интеграции мобильных устройств с учетной системой. Одной из классических задач является передача данных из нативного Android-приложения в информационную базу 1С. Например, когда клиент через смартфон записывается на прием, и эти данные должны мгновенно отобразиться в рабочем месте менеджера. Разберем наиболее эффективные и современные способы реализации этой задачи, основываясь на возможностях платформы 1С:Предприятие 8.3.
Наиболее гибким и профессиональным способом является создание собственного HTTP-сервиса внутри конфигурации 1С. Этот метод позволяет определить четкую структуру API, которую будет вызывать мобильное приложение. Рассмотрим подробнее процесс реализации этого механизма.
Для начала проанализируем структуру нашего сервиса в конфигураторе. Нам необходимо создать объект метаданных HTTP-сервисы. В свойствах укажем корневой URL (например, /mobile_exchange). Далее определим шаблон URL, например, /create_appointment, и добавим к нему метод POST. Именно этот метод будет отвечать за прием данных от Android-приложения.
Разберем пример программного кода внутри модуля HTTP-сервиса, который принимает JSON с данными пациента:
Функция ПринятьЗаписьНаПрием(Запрос)
// Читаем тело запроса, которое пришло из Android
ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();
// Инициализируем чтение JSON
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(ТелоЗапроса);
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
// Создаем новый документ или запись в справочнике
НоваяЗаявка = Справочники.ЗаявкиНаПрием.СоздатьЭлемент();
НоваяЗаявка.ФИО = Данные.PatientName;
НоваяЗаявка.Телефон = Данные.Phone;
НоваяЗаявка.Врач = Справочники.Врачи.НайтиПоНаименованию(Данные.DoctorName);
НоваяЗаявка.ДатаПриема = Дата(Данные.AppointmentDate);
Попытка
НоваяЗаявка.Записать();
Ответ = Новый HTTPСервисОтвет(201); // Created
Ответ.УстановитьТелоИзСтроки("Запись успешно создана");
Исключение
Ответ = Новый HTTPСервисОтвет(500); // Internal Server Error
Ответ.УстановитьТелоИзСтроки("Ошибка записи: " + ОписаниеОшибки());
КонецПопытки;
Возврат Ответ;
КонецФункции
Важно помнить, что для работы этого сервиса база 1С должна быть опубликована на веб-сервере (Apache или IIS). При публикации необходимо убедиться, что флажок "Публиковать HTTP сервисы" установлен.
Если нам требуется максимально быстрое решение без написания программного кода в 1С, рассмотрим использование автоматического REST-интерфейса (OData). Платформа 1С позволяет автоматически генерировать API для всех объектов метаданных.
Выясним, как это включить. В свойствах конфигурации необходимо найти пункт "Состав стандартного интерфейса OData" и выбрать те справочники или документы, к которым мобильное приложение будет иметь доступ. После публикации базы на веб-сервере, Android-приложение сможет отправлять стандартные HTTP-запросы (GET, POST, PATCH) по адресу вида: http://server/base/odata/standard.odata/Document_ЗаявкаНаПрием.
Преимущество этого метода заключается в отсутствии необходимости отлаживать код на стороне 1С, однако он менее безопасен и дает меньше контроля над бизнес-логикой в момент записи данных, чем первый вариант.
Проанализируем ситуацию, когда прямое соединение Android-приложения с сервером 1С затруднено (например, из-за отсутствия выделенного IP-адреса или строгих настроек безопасности). В этом случае удобно использовать Firebase Realtime Database или Firestore в качестве посредника.
Схема работы выглядит следующим образом:
Для реализации этого в 1С мы используем объект HTTPСоединение для обращения к REST API Firebase. Это позволяет системе работать внутри закрытой сети, самостоятельно инициируя сеансы связи с облаком.
Выясним, почему в современных реализациях стоит отказаться от XML или текстовых файлов (CSV) в пользу JSON. Во-первых, JSON является "родным" форматом для JavaScript и Android-разработки (библиотеки Retrofit, GSON). Во-вторых, в 1С версии 8.3.6 и выше появилась встроенная поддержка этого формата через объекты ЧтениеJSON и ЗаписьJSON.
Рассмотрим пример формирования JSON-структуры для отправки из 1С в мобильное приложение, если нам нужно подтвердить запись:
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
СтруктураОтвета = Новый Структура;
СтруктураОтвета.Вставить("Status", "Confirmed");
СтруктураОтвета.Вставить("AppointmentID", "12345");
ЗаписатьJSON(Запись, СтруктураОтвета);
РезультатСтрокой = Запись.Закрыть();
При организации обмена данными необходимо обратить внимание на следующие технические детали:
http. Крайне рекомендуется настроить https с использованием сертификатов (например, бесплатных от Let's Encrypt).Таким образом, мы рассмотрели основные архитектурные подходы. Для простых задач идеально подойдет OData, для гибких и масштабируемых систем — собственные HTTP-сервисы, а для работы в нестабильных сетях — интеграция через Firebase. Выбор конкретного метода зависит от ваших компетенций в программировании и требований к безопасности системы.