HTTP-сервис в 1С: как подключить мобильное приложение или сайт без обмена файлами
Многие связывают 1С с сайтом и приложениями через файлы по расписанию. Разбираю, как HTTP-сервис отвечает на запросы сразу и что продумать до первой строчки кода.
Коротко (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 минут.


