Автоматизация · 11 мин
Как связать мобильное приложение и 1С
Как связать мобильное приложение и 1С: обзор способов интеграции, настройка HTTP-сервисов, мобильная платформа 1С, типичные ошибки и проверка результата.
Связать мобильное приложение с 1С можно несколькими способами: через HTTP-сервисы и OData, через мобильную платформу 1С, через готовые коннекторы или через промежуточную базу данных. Выбор зависит от того, кто разрабатывает приложение — ваша команда или сторонний подрядчик, — а также от требований к офлайн-работе и скорости обмена данными.
Главная задача интеграции — обеспечить безопасный обмен: приложение должно получать из 1С актуальные остатки, цены, заказы и контрагентов, а 1С — принимать заявки, статусы доставки и данные с терминалов сбора данных. При этом база 1С не должна быть открыта напрямую в интернет: это создаёт серьёзные риски утечки коммерческой информации.
Перед началом работ определите три параметра: какие данные должны уходить из 1С в приложение, какие — возвращаться обратно, и как часто нужна синхронизация. От ответов на эти вопросы зависит архитектура решения и объём доработок в конфигурации.
Какие способы интеграции существуют
Существует четыре основных подхода к связи мобильного приложения с 1С. Первый — публикация HTTP-сервисов или REST-интерфейса OData прямо из конфигурации: приложение отправляет запросы и получает данные в формате JSON или XML. Второй — мобильная платформа 1С, которая позволяет собрать автономное приложение на том же языке 1С с автоматической синхронизацией с основной базой.
Третий вариант — промежуточный слой: отдельный веб-сервис или брокер сообщений (например, очередь), который принимает запросы от приложения и транслирует их в 1С через регламентные задания или COM/HTTP-подключение. Четвёртый — готовые коннекторы и облачные сервисы интеграции, которые подходят для типовых сценариев вроде обмена заказами интернет-магазина.
Сравнение вариантов интеграции
Подходит, когда приложение разрабатывается отдельно (Kotlin, Swift, Flutter). Требует публикации базы на веб-сервере и настройки безопасности.
Подходит для автономной работы офлайн и быстрой разработки силами 1С-специалистов. Ограничение — интерфейс и возможности платформы.
Подходит при высокой нагрузке и требованиях к безопасности: 1С не видна извне. Минус — нужна отдельная разработка и поддержка сервиса.
Подходят для типовых задач без программирования. Ограничение — фиксированный набор сценариев, сложно доработать под нестандартные процессы.
Подготовка 1С: что настроить до начала обмена
Начните с создания в 1С отдельного пользователя для интеграции с минимально необходимыми правами. Никогда не давайте приложению доступ под учётной записью администратора: при компрометации токена или пароля злоумышленник получит полный контроль над базой. Для пользователя интеграции создайте отдельную роль, разрешающую только чтение нужных справочников и запись конкретных документов.
Далее определите точки обмена. Если используете HTTP-сервисы, добавьте их в конфигураторе: создайте объект «HTTP-сервис», опишите шаблоны URL и методы обработки запросов. Для OData достаточно включить публикацию стандартного интерфейса и отметить в конфигурации объекты, доступные через него.
Если обмен двусторонний, продумайте механизм очередей: как 1С узнает, что в приложении появились новые данные. Обычно используют либо периодический опрос (приложение раз в несколько минут запрашивает изменения), либо регистрацию изменений через планы обмена — тогда 1С отдаёт только то, что изменилось с прошлой сессии.
Публикация HTTP-сервисов и OData пошагово
Для публикации потребуется веб-сервер: IIS на Windows или Apache на Linux. Установите модуль расширения веб-сервера 1С, затем через команду «Администрирование — Публикация на веб-сервере» в конфигураторе создайте публикацию, отметив флажки «Публиковать HTTP-сервисы» или «Публиковать стандартный интерфейс OData».
После публикации проверьте доступность сервиса: откройте в браузере адрес вида https://сервер/база/odata/standard.odata и убедитесь, что сервер запрашивает авторизацию и возвращает список доступных сущностей. Если вместо этого вы видите ошибку 404 или 500, проверьте права на каталог публикации и корректность установки модуля расширения.
Пример запроса остатков через OData из приложения выглядит как обычный GET-запрос с базовой авторизацией:
GET /base/odata/standard.odata/AccumulationRegister_Остатки/Balance?$filter=Склад eq guid'...' HTTP/1.1
Host: server.example.local
Authorization: Basic <base64-логин-пароль>- 1Создайте в конфигураторе HTTP-сервис и опишите шаблоны URL и обработчики методов GET/POST
- 2Создайте отдельного пользователя интеграции с ограниченной ролью
- 3Установите веб-сервер и модуль расширения 1С
- 4Опубликуйте базу через конфигуратор, включив публикацию HTTP-сервисов
- 5Настройте HTTPS-сертификат на веб-сервере
- 6Проверьте доступность сервиса запросом из браузера или Postman
- 7Протестируйте запросы из мобильного приложения на тестовой базе
Мобильная платформа 1С: когда она лучший выбор
Мобильная платформа — это отдельный продукт фирмы «1С», позволяющий собирать приложения для Android и iOS, написанные на встроенном языке 1С. Главное преимущество — автономность: приложение хранит локальную копию данных на устройстве и синхронизируется с основной базой при появлении связи. Это критично для торговых представителей, курьеров и складских работников в зонах с нестабильным интернетом.
Синхронизация обычно строится на планах обмена: в основной базе создаётся узел для каждого мобильного устройства, регистрируются изменения, и при обмене передаются только дельты. Это снижает трафик и время синхронизации по сравнению с полной выгрузкой справочников.
Ограничения платформы: интерфейс строится средствами 1С и выглядит менее привычно, чем нативные приложения; часть аппаратных возможностей устройства требует доработки через внешние компоненты. Если приложение ориентировано на клиентов компании, а не на сотрудников, мобильная платформа обычно не подходит — лучше связка «нативное приложение + HTTP-сервисы».
Организация обмена данными: форматы и регламент
Для передачи данных используйте JSON — он компактнее XML и нативно поддерживается всеми мобильными фреймворками. В 1С для работы с JSON есть встроенные объекты ЗаписьJSON и ЧтениеJSON. Не передавайте целые документы со всеми реквизитами: формируйте лёгкие структуры только с теми полями, которые реально нужны приложению.
Продумайте идентификацию объектов. В 1С каждый объект имеет уникальный GUID — передавайте его в приложение и храните там как первичный ключ. Это избавит от дублей контрагентов и номенклатуры при повторной синхронизации. Для новых объектов, созданных в приложении, зарезервируйте признак «создано на устройстве», чтобы 1С при приёме могла корректно зарегистрировать их.
Определите регламент обмена: периодичность синхронизации, поведение при конфликтах (кто главный — 1С или приложение), обработку ошибок. Записывайте все ошибки обмена в журнал: без этого при пропаже заказа вы не сможете понять, на каком этапе он потерялся.
Проверка результата и типичные ошибки
После настройки проверьте обмен на тестовой копии базы, а не на рабочей. Создайте в приложении тестовый заказ, убедитесь, что он появился в 1С с корректными реквизитами, контрагентом и суммами. Затем измените цены в 1С и проверьте, что после синхронизации приложение показывает актуальные значения.
Как проверить результат
Запрос возвращает данные с кодом 200 после авторизации
Ошибка 401 (нет авторизации), 403 (нет прав) или 500 (ошибка в коде обработчика)
Заказ из приложения создаёт документ в 1С с верными суммами и контрагентом
Документ создаётся с пустыми реквизитами, дублируется или не создаётся
Под учётной записью интеграции недоступны закрытые разделы (зарплата, банк)
Через API можно прочитать любые данные базы
Передаются только изменённые данные, дублей нет
Каждый обмен передаёт всё справочники целиком, появляются дубли
Когда стоит привлечь специалиста
Самостоятельно можно настроить простой сценарий: публикацию OData для чтения справочников или типовой обмен через мобильную платформу по инструкции вендора. Но если требуется двусторонний обмен документами с разрешением конфликтов, интеграция с платёжными системами или высокая нагрузка (десятки одновременных пользователей приложения), привлеките разработчика с опытом интеграций 1С.
Отдельный случай — требования законодательства к персональным данным. Если приложение работает с данными клиентов, проконсультируйтесь со специалистом по информационной безопасности о допустимых схемах хранения и передачи.
Что важно запомнить
Связь мобильного приложения с 1С строится через HTTP-сервисы/OData, мобильную платформу или промежуточный сервис. Обязательные условия: отдельный пользователь с минимальными правами, HTTPS, обмен только изменёнными данными, журнал ошибок и тестирование на копии базы.
Ответы на частые вопросы
Можно ли связать приложение с 1С без публикации базы в интернете?
Да. Разместите промежуточный веб-сервис внутри корпоративной сети или используйте VPN для мобильных устройств. Альтернатива — обмен через файлы или облачное хранилище по расписанию, если онлайн-режим не критичен.
Что выбрать: OData или собственные HTTP-сервисы?
OData быстрее внедрить: стандартный интерфейс публикуется без программирования и даёт доступ к типовым объектам. Собственные HTTP-сервисы нужны, когда требуется нестандартная логика, контроль над составом возвращаемых полей или специфическая обработка ошибок.
Работает ли интеграция с файловой базой 1С?
Да, HTTP-сервисы и OData можно опубликовать и для файловой базы. Однако при активной работе пользователей и параллельных запросах от приложения возможны блокировки. Для постоянной интеграции с несколькими устройствами рекомендуется клиент-серверный вариант.
Как организовать работу приложения без интернета?
Используйте мобильную платформу 1С — она хранит локальную копию данных и синхронизируется при появлении связи. В нативном приложении офлайн-режим придётся разрабатывать самостоятельно: локальная база на устройстве, очередь исходящих документов и механизм разрешения конфликтов.
Сколько пользователей приложения выдержит одна база 1С?
Точного универсального значения нет: нагрузка зависит от объёма запросов, сложности обработчиков и мощности сервера. Каждый HTTP-запрос создаёт сеанс на сервере 1С, поэтому при массовом использовании оптимизируйте обработчики, кэшируйте редко меняющиеся данные и рассмотрите вынос обмена в промежуточный сервис.
Нужна ли отдельная лицензия 1С для мобильного приложения?
Лицензионная политика зависит от способа подключения и версии платформы. Как правило, сеансы через веб-сервисы учитываются в лицензиях на сервер или требуют клиентских лицензий. Перед запуском в промышленную эксплуатацию уточните условия лицензирования у фирмы «1С» или её партнёра.