HTTP-сервис 1С: когда он нужен и как получить данные без него

HTTP-сервис в 1С есть давно и хорошо делает свою работу. Но чтобы он заработал, нужен программист, публикация базы на веб-сервере и вход в нее снаружи. И даже работающий сервис отвечает только на те вопросы, которые в него заранее заложили. Ниже разбираем, что такое HTTP-сервис, во что обходится его запуск, где он подходит лучше всего и в каких задачах проще взять данные запросом из самой базы через Жёлтый мост (onecdatalink.ru): без белого IP, без публикации и без расширения.

HTTP-сервис 1СREST к 1СAPI 1Сбез белого IPбез публикации
HTTP-сервисзаранее заданный набор адресов: быстро и под контролем, но каждый новый вопрос - доработка
Жёлтый мостлюбой запрос на языке запросов 1С, база сама ходит наружу, конфигурация не меняется
Можно вместесервис держит постоянный обмен, мост закрывает разовые и меняющиеся вопросы

Что такое HTTP-сервис 1С

HTTP-сервис - это объект конфигурации (в дереве он лежит в разделе «Общие»). Программист описывает в нем адреса: шаблоны URL с параметрами, например «заказ по номеру» или «остатки по складу». Для каждого адреса задаются методы (GET, POST и другие), и на каждый метод пишется обработчик на встроенном языке. Обработчик сам решает, что прочитать в базе, что проверить и что вернуть: код ответа, заголовки и тело, обычно JSON.

Если пришел адрес, которого в сервисе нет, платформа отвечает ошибкой 404. К этому вернемся ниже: сервис знает только то, что в него написали.

Снаружи HTTP-сервис выглядит как обычный REST: внешняя система отправляет запрос на адрес вида https://сервер/база/hs/имя-сервиса/... и получает ответ. Вход выполняется под пользователем 1С, а его права ограничивают, что сервис увидит.

Что нужно, чтобы он заработал

Сама технология входит в платформу. Затраты уходят на все, что вокруг нее:

  • программист 1С. Сервис нужно спроектировать, написать, проверить и поддерживать. Готового сервиса под ваши вопросы в типовой конфигурации нет;
  • место для кода. Либо правка конфигурации (тогда ее сложнее обновлять), либо расширение. Расширение аккуратнее, но и у него есть условия: на базовых версиях программ расширения недоступны, а на старых конфигурациях и платформах возможности ограничены;
  • публикация на веб-сервере. Нужен Apache или IIS, публикация базы и настройка файла default.vrd. У публикации сервисов из расширений, по опыту форумов, свои тонкости;
  • вход снаружи. Чтобы внешняя система достучалась до базы, нужен белый IP, проброс порта или VPN, а еще сертификат для HTTPS;
  • защита. Опубликованная база становится точкой входа из интернета. Пароли, обновления веб-сервера, журнал обращений и отбор адресов, с которых можно заходить, теперь ваша забота.

Поэтому у одних компаний сервис давно поднят и работает, у других его нет совсем: база стоит в офисе за роутером, своего программиста нет, а в 1С:Фреш публикацией базы управляет оператор, и свой веб-сервер там не поднять. Именно поэтому технология «есть», но пользоваться ею могут не все.

Сильные стороны HTTP-сервиса

  • Скорость. Запрос приходит в базу сразу, через ваш веб-сервер, без очереди и внешнего шлюза. Для частых коротких обращений это быстрее всего.
  • Жесткий контракт. Адреса и формат ответа заданы заранее, поэтому внешняя система всегда получает одно и то же. Для обмена между двумя программами это плюс, а не минус.
  • Полный контроль. В обработчике можно проверить любые условия, вызвать бизнес-логику конфигурации, записать документ так, как это принято в вашей базе.
  • Нагрузка. Хорошо написанный сервис на нормальном сервере выдерживает частые обращения, например от сайта или мобильного приложения. Предел задают сервер и сам код.

Слабые стороны: структура задана заранее

Ограничение следует из того же, что дает скорость и контроль. Сервис отвечает только на те вопросы, которые программист в него заложил. Если в нем есть адрес «остатки по складу», а нужно «остатки по складу в разрезе серий с ценой последнего поступления», это уже новый адрес. Значит, постановка задачи, доработка, проверка и выкладка. На это уходят дни, а иногда недели.

  • каждый новый вопрос - доработка. Для обмена, который долго не меняется, это не страшно. Для аналитики, где вопросы меняются каждую неделю, это постоянная очередь задач к программисту;
  • обновление конфигурации может сломать сервис. Переименовали реквизит или поменяли регистр, и обработчик надо править;
  • ИИ-ассистенту такой сервис мало полезен. Ассистент полезен прежде всего там, где вопрос заранее неизвестен. Если ему доступны десять адресов, он ответит только на десять видов вопросов;
  • вход в базу открыт снаружи. Это риск всего класса решений «расширение или модуль с HTTP-API», особенно если такой модуль умеет выполнять произвольный код: при слабой авторизации через него можно попасть в базу.

Как это решает Жёлтый мост

Жёлтый мост устроен наоборот: не внешняя система стучится в базу, а база сама забирает задания. В 1С запускается внешняя обработка, она по исходящему HTTPS обращается к шлюзу onecdatalink.ru, берет запрос, выполняет его внутри базы и отправляет ответ. Входящих соединений нет, поэтому не нужны ни белый IP, ни публикация, ни веб-сервер, ни расширение. Конфигурация не меняется.

Путь данных выглядит так:

  • HTTP-сервис: внешняя система → интернет → веб-сервер в вашей сети → база 1С;
  • Жёлтый мост: база 1С → исходящий HTTPS → шлюз onecdatalink.ru → ИИ-ассистент или внешняя система.

Вторая разница важнее первой. Вместо набора заранее написанных адресов внешняя система или ИИ-ассистент отправляет запрос на языке запросов 1С: с виртуальными таблицами остатков и оборотов, группировками, итогами, временными таблицами и пакетами. Ответ приходит в JSON одним вызовом. Новый вопрос - это новый текст запроса, а не новая версия конфигурации.

Чтобы запрос был написан по вашим именам объектов, а не наугад, к ключу можно приложить справку по структуре конфигурации, если исходники вашей конфигурации есть у сервиса. ИИ-ассистент сначала ищет в ней нужный регистр и реквизиты, а потом пишет запрос. Так можно найти в базе то, о чем при настройке никто не думал.

Что еще стоит знать:

  • права равны правам пользователя 1С, под которым запущена обработка. Для внешних систем разумно завести отдельного пользователя с узкими правами;
  • чтение по умолчанию. Изменяющие конструкции в запросах отклоняются. Запись включается отдельно, на ключе «чтение и запись» и по разрешению, а прогон по умолчанию пробный, с откатом;
  • персональные данные по умолчанию закрываются: ФИО, ИНН, телефоны внешняя система получает замаскированными;
  • подходит для старых баз: есть сборки для обычных форм и для платформы 8.3.5, а для 1С:Фреш мост работает через стандартный OData (там действуют границы самого OData, только чтение и без языка запросов).

Подробнее об устройстве без входящих соединений - в статье «Как подключить ИИ к 1С без сервера, расширений и открытых портов».

Сравнение

HTTP-сервис 1СЖёлтый мост
Что меняется в базеконфигурация или расширениеничего, внешняя обработка
Публикация, белый IPнужны: веб-сервер, default.vrd, проброс порта или VPNне нужны, только исходящий HTTPS
Какие вопросытолько заложенные адресалюбой запрос на языке запросов 1С
Новый вопросдоработка, проверка, выкладкановый текст запроса
Скорость ответасразусекунды, при очереди до 1-2 минут
Нагрузкачастые обращения, предел задает серверзапросы к одной базе по очереди
Записьлюбая логика, которую написалитолько с разрешения, сначала пробный прогон
ИИ-ассистентвидит только заложенные адресапишет запрос сам, по справке о структуре, если она приложена
Кто запускаетпрограммист 1С и администратор сетипользователь 1С за несколько минут
База выключенасервис не отвечаетмост тоже не отвечает

Когда лучше HTTP-сервис

Есть задачи, где HTTP-сервис подходит лучше, и мост его не заменит.

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

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

Когда удобнее Жёлтый мост

  • разовые и меняющиеся вопросы: руководителю нужен свод, которого нет в отчетах, аналитику нужно проверить гипотезу, бухгалтеру найти расхождение;
  • ИИ-ассистент в чате или в редакторе кода, который должен видеть всю базу, а не десять адресов;
  • своя CRM, сайт или дашборд, где данные нужны раз в несколько минут и важнее гибкость, чем доли секунды. Пример такого выбора разобран в практике про приложение для Битрикс24: там сравнивается в том числе путь «публикация и свой HTTP-сервис»;
  • базы, которые нельзя открывать наружу: файловая база в офисе, сервер без белого IP, строгие правила службы безопасности. Об этом подробно в практике «Как пустить ИИ в базу 1С, не открывая ее наружу»;
  • конфигурацию менять нельзя или некому: базовые версии, старые релизы, нет своего программиста.

Ограничения моста тоже стоит назвать прямо. База должна быть запущена, а обработка работать. Обмен идет короткими окнами, поэтому ответ бывает не сразу, при очереди до 1-2 минут. Запросы к одной базе выполняются по очереди, и это не канал для тысяч обращений в секунду. Данные проходят через шлюз сервиса в России, с маскировкой персональных данных.

Можно вместе

HTTP-сервис и мост не исключают друг друга. Частая схема: сайт берет остатки и цены через свой HTTP-сервис, потому что ему нужна скорость, а все остальное идет через мост. Руководитель спрашивает ИИ-ассистента про выручку и долги, аналитик собирает выборки для отчета, программист проверяет запрос на живых данных, прежде чем зашить его в сервис. Справочник адресов сервиса остается маленьким и стабильным, а меняющиеся вопросы больше не превращаются в задачи на доработку.

Если вы выбираете способ доступа к 1С в целом, посмотрите также, почему у стандартного OData свои границы: тайм-ауты на больших выборках и подключение 1С:Фреш через OData. Сколько стоит каждый путь, разобрано в статье «Сколько стоит подключить 1С к ИИ».

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

Можно ли сделать HTTP-сервис без изменения конфигурации?

Только через расширение, а оно доступно не везде: на базовых версиях программ расширения недоступны, и в любом случае нужна публикация базы на веб-сервере. Если менять ничего нельзя, остается способ, при котором база сама обращается наружу, как в Жёлтом мосте.

Нужен ли белый IP для Жёлтого моста?

Нет. Обработка в базе сама подключается к onecdatalink.ru по исходящему HTTPS, так же, как браузер открывает сайт. Порты открывать не нужно, веб-сервер не нужен.

Мост умеет только то, что заранее настроено?

Нет, в этом и разница. Внешняя система или ИИ-ассистент отправляет запрос на языке запросов 1С, поэтому можно получить любые данные, которые видны пользователю обработки: остатки, обороты, своды, выборки из любых справочников и документов. Это относится к базам с обработкой, во Фреше через OData возможности уже.

Заменит ли мост наш HTTP-сервис для сайта?

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

Сколько это стоит?

Ключ стоит 81 рубль в сутки, списание идет посуточно, пока ключ включен. Первые 3 дня бесплатно. Цены и скидки при пополнении на странице тарифов.

Попробовать на своей базе

Три дня бесплатно, без публикации базы и без доработки конфигурации.

81 руб/сутки
за подключенный ключ, безлимит по запросам
0 руб
дни на паузе: выключили ключи - списаний нет

Подробно о тарифах

Комментарии

Вопросы по делу, свой опыт и спокойная критика - публикуем. Реклама и ссылки на сторонние сайты не проходят. Комментарии открываются после проверки.