Как вызвать веб-сервис корпоративного портала из 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Интеграция 1С с внешними корпоративными порталами часто вызывает вопросы у разработчиков, особенно когда речь заходит о выборе между классическими веб-сервисами (SOAP) и современным REST API. Рассмотрим пошагово, как реализовать обмен данными, используя стандартные возможности платформы 1С.

Определяем архитектуру взаимодействия

Прежде чем приступать к написанию кода, важно проанализировать требования портала. В современных системах чаще всего используется обмен в формате JSON через HTTP-методы (GET, POST). В терминологии 1С это реализуется не через «Веб-сервисы» (которые подразумевают работу с WSDL), а через объект HTTPСоединение.

Для успешной интеграции необходимо:

  1. Получить документацию API: методы, базовый URL, способы авторизации и структуру JSON-объектов.
  2. Протестировать запросы в стороннем ПО (например, Postman), чтобы убедиться, что сервер портала отвечает корректно.
  3. Подготовить данные на стороне 1С и сформировать корректные заголовки запроса.

Реализация отправки данных через HTTP-соединение

Для отправки данных мы будем использовать объект HTTPСоединение. Он позволяет устанавливать соединение с сервером и выполнять различные методы запроса. Рассмотрим пример базового кода для отправки данных:


// Создаем соединение с порталом
// При использовании HTTPS передаем объект ЗащищенноеСоединениеOpenSSL
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("portal.ru", 443, , , , 10, SSL);

// Формируем заголовки запроса
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/json");

// Создаем HTTP-запрос
HTTPЗапрос = Новый HTTPЗапрос("/get_data.php", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);

// Выполняем метод POST или GET
Ответ = Соединение.ВызватьHTTPМетод("POST", HTTPЗапрос);

Обработка ответов от сервера

После вызова метода мы получаем объект HTTPОтвет. Его важно проанализировать, чтобы понять, прошла ли операция успешно. Не забывайте использовать блок Попытка...Исключение, чтобы обработать таймауты и ошибки сети.

Рассмотрим, как анализировать результат:


Если Ответ.КодСостояния = 200 Тогда
    // Успех, разбираем ответ
    ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
    ДанныеОтвета = ПрочитатьJSON(ТелоОтвета);
Иначе
    // Обработка ошибки
    Сообщить("Ошибка запроса: " + Ответ.КодСостояния);
КонецЕсли;

Важные рекомендации

При работе с обменами данными учитывайте следующие технические нюансы:

Таким образом, взаимодействие с корпоративным порталом через 1С сводится к правильной настройке HTTPСоединение и грамотной обработке тела запроса/ответа. Если портал предоставляет API, следуйте его документации, контролируйте коды состояний и обеспечивайте корректную сериализацию данных в JSON.

← На главную