При интеграции 1С с внешними системами — сайтами, интернет-магазинами, мобильными приложениями или сторонними сервисами — часто возникает задача не просто периодически выгружать файлы по расписанию, а обрабатывать входящие вызовы моментально. Рассмотрим, какие механизмы платформы 1С:Предприятие позволяют принимать входящие запросы извне и возвращать ответы в режиме реального времени.
Платформа 1С может выступать не только клиентом (потребителем сторонних сервисов), но и полноценным сервером, предоставляющим API для внешних систем. Проанализируем основные архитектурные варианты реализации такого взаимодействия.
HTTP-сервисы — наиболее популярный и гибкий механизм платформы для построения современных REST-интерфейсов. Они позволяют внешним системам отправлять стандартные HTTP-запросы (GET, POST, PUT, DELETE, PATCH) и получать сформированный в 1С ответ.
Разберем ключевые особенности HTTP-сервисов:
Посмотрим на типовой пример обработчика метода POST в модуле HTTP-сервиса, принимающего данные в формате JSON и возвращающего результат:
Функция ДанныеЗаказаВыполнитьPOST(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
СтрокаJSON = Запрос.ПолучитьТелоКакСтроку("UTF-8");
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(СтрокаJSON);
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
СтруктураОтвета = Новый Структура;
СтруктураОтвета.Вставить("Успех", Истина);
СтруктураОтвета.Вставить("Идентификатор", Данные.НомерЗаказа);
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
ЗаписатьJSON(Запись, СтруктураОтвета);
Ответ.УстановитьТелоИзСтроки(Запись.Закрыть(), "UTF-8");
Возврат Ответ;
КонецФункции
Web-сервисы платформы 1С основаны на стандартах SOAP и протоколе WSDL. Это классический вариант интеграции с жестко типизированными контрактами данных.
Рассмотрим особенности использования SOAP-сервисов:
Если требуется предоставить внешний доступ к стандартным данным конфигурации (справочникам, документам, регистрам сведений) без написания программного кода API, можно использовать автоматический REST-интерфейс OData платформы 1С.
Разберем по шагам, как работает OData:
Для того чтобы база 1С могла принимать входящие веб-вызовы (HTTP-сервисы, Web-сервисы или OData), необходимо настроить инфраструктуру:
При проектировании синхронного API в 1С обратим внимание на следующие практические нюансы:
default.vrd настраивается пул соединений.