Введение
В 1С часто возникает необходимость взаимодействовать с внешними сервисами, в том числе и с локальными веб‑приложениями. Один из самых распространённых сценариев – отправка GET‑запроса к http://localhost:8000/send_message/ с параметрами phone_number и text. Ниже приведён полностью рабочий пример, который можно сразу вставить в модуль 1С.
Пошаговый пример кода
\nHTTPСоединение = Новый HTTPСоединение("localhost", 8000);
Параметры = Новый Массив;
Параметры.Добавить(СтрШаблон("%1=%2", "phone_number", "1234567890"));
Параметры.Добавить(СтрШаблон("%1=%2", "text", "Hello"));
ПараметрыСтрока = СтрСоединить(Параметры, "&");
Если Параметры.Количество() > 0 Тогда
АдресРесурса = СтрШаблон("send_message/?%1", ПараметрыСтрока);
Иначе
АдресРесурса = "send_message/";
КонецЕсли;
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
Результат = HTTPСоединение.ВызватьHTTPМетод("GET", HTTPЗапрос);
Разбор кода
- HTTPСоединение – объект, представляющий соединение с сервером. В примере используется
localhostи порт8000. - Параметры – массив строк, каждая из которых содержит ключ‑значение в формате
key=value. Для удобства формируется с помощьюСтрШаблон. - ПараметрыСтрока – строка, полученная конкатенацией элементов массива через символ «&».
- АдресРесурса – путь к ресурсу с добавленными параметрами. Если параметров нет, используется базовый путь.
- HTTPЗапрос – объект запроса, которому передаётся сформированный адрес.
- Результат – объект
HTTPОтвет, содержащий статус, заголовки и тело ответа.
Что делать с ответом?
После вызова ВызватьHTTPМетод вы получите объект HTTPОтвет. Чтобы вывести статус и тело ответа, можно использовать:
\nЕсли Результат.КодСостояния = 200 Тогда
Сообщить("Ответ: " + Результат.ПолучитьТелоКакСтроку());
Иначе
Сообщить("Ошибка " + Результат.КодСостояния + ": " + Результат.ПолучитьТелоКакСтроку());
КонецЕсли;
Советы по работе с локальными сервисами
- Убедитесь, что сервер запущен и слушает указанный порт.
- Если сервер требует аутентификации, добавьте заголовки через
HTTPЗапрос.ДобавитьЗаголовок. - Для отладки удобно использовать
HTTPЗапрос.ПолучитьТелоКакСтрокув консоли 1С. - Если запросы выполняются часто, рассмотрите возможность кэширования соединения.
Вывод
Получив простой, но полностью рабочий пример, вы можете быстро интегрировать 1С с любым локальным веб‑сервисом. Главное – правильно сформировать URL‑параметры и обработать ответ. Удачной разработки!