Разработка 5 мин чтения

HTTP-сервис в 1С: как подключить мобильное приложение или сайт без обмена файлами

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

интеграцияHTTP-сервисAPI

Коротко (TL;DR)

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

Я часто вижу одну и ту же схему. 1С раз в час выгружает файл с остатками, сайт или приложение его забирает. Звучит надёжно, но на деле данные отстают, файлы теряются, а обмен молча встаёт на неделю, пока кто-то не заметит. Кладовщик видит на терминале остаток, которого уже нет. Покупатель заказывает товар, проданный час назад. Есть способ проще и честнее: научить 1С отвечать на запросы напрямую. Для этого в платформе есть HTTP-сервисы. Расскажу, как я их делаю и где они не нужны.

Что такое HTTP-сервис простыми словами

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

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

Работает это и в обратную сторону. Приложение отправляет в 1С новый документ, например приёмку товара. 1С его проверяет, записывает и отвечает, получилось или нет. Если нет, приложение сразу показывает причину.

Что нужно для работы

Первое — публикация базы на веб-сервере. Без неё 1С не сможет принимать запросы снаружи. Обычно это делается на том же сервере, где стоит база, или рядом с ним.

Второе — доступ из сети, где работают терминалы или стоит сайт. Если терминалы в локальной сети склада, хватит внутреннего адреса. Если запросы идут с сайта в интернете, нужен внешний доступ, и тут уже важна защита.

Третье — авторизация. Каждый запрос должен приходить от известного пользователя. Анонимный доступ к учётной базе я не делаю никогда.

Как спроектировать обмен

Главная ошибка — сразу садиться писать код. Сначала нужно договориться о протоколе. Это простой документ, где описано всё, о чём приложение и 1С будут говорить друг с другом.

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

Типичные операции почти всегда одни и те же. Получить справочник товаров со штрихкодами и единицами. Получить остатки по складу или по конкретной позиции. Записать документ: приёмку, отгрузку, инвентаризацию, заказ. Проверить статус документа или заказа. Когда этот список согласован, разработчик 1С и разработчик приложения работают параллельно и не ждут друг друга.

HTTP-сервис и другие способы связи

HTTP-сервис — не единственный вариант. Вот как я сравниваю основные способы.

Способ связиСкоростьНадёжностьКогда подходит
Файлы по расписаниюС задержкой до следующей выгрузкиСредняя: файлы теряются, сбои замечают поздноРедкие выгрузки раз в день, большие отчёты
HTTP-сервисОтвет сразуВысокая: ошибка видна в момент запросаТерминалы, мобильные приложения, сайт с живыми остатками
Стандартный обмен между базами 1СПо расписанию или по командеВысокая при правильной настройкеСвязь двух конфигураций 1С между собой
Ручной переносЗависит от человекаНизкая: опечатки и пропускиТолько разовые операции

Безопасность

Для обмена я всегда завожу отдельного пользователя 1С. У него только те права, которые нужны для протокола. Читать товары и остатки, записывать нужные документы. Больше ничего. Если данные этого пользователя утекут, вред будет ограничен.

Соединение должно быть защищённым, особенно если запросы идут через интернет. Логины и данные о товарах не должны ходить открытым текстом.

И не нужно публиковать в интернет всю базу целиком, если хватает нескольких сервисов. Чем меньше открыто наружу, тем спокойнее. Если терминалы работают только внутри склада, я оставляю доступ только из локальной сети.

Нагрузка и тестовая база

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

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

Когда HTTP-сервис не нужен

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

HTTP-сервис хорош там, где человек ждёт ответа прямо сейчас. Кладовщик сканирует товар, покупатель смотрит наличие, менеджер проверяет статус заказа.

Частые вопросы

Нужно ли покупать что-то дополнительно?

HTTP-сервисы входят в платформу 1С:Предприятие 8.3. Понадобится веб-сервер для публикации базы. Часто он уже есть или ставится на тот же сервер.

Можно ли сделать HTTP-сервис в типовой конфигурации?

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

Что будет, если сервер 1С недоступен?

Приложение должно это понимать и честно говорить человеку. Для складских операций я делаю очередь: документ сохраняется на терминале и уходит в 1С, когда связь вернётся.

Подойдёт ли это для файловой базы?

Технически публикация возможна, но под нагрузку от нескольких терминалов я рекомендую клиент-серверный вариант. Файловая база быстрее упирается в пределы.

Сколько времени занимает запуск?

Зависит от числа операций в протоколе и от состояния базы. Простой набор из справочника, остатков и одного документа делается заметно быстрее, чем полный складской цикл.

Коротко о главном

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

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

Если у вас обмен идёт файлами и данные отстают, расскажите, какие системы нужно связать. Я посмотрю схему и скажу, где HTTP-сервис даст пользу, а где хватит обычной выгрузки. Напишите в Telegram, MAX или VK.

Услуги по теме

Что я делаю для бизнеса

  • Складской учёт и приложения для ТСД
  • Интеграция 1С с сайтом, ботом и маркетплейсами
  • Автоматизация процессов и CRM
  • Боты для заказов в Telegram и MAX

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх