Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода)

12.08.19

Интеграция - WEB-интеграция

Простая обработка по отправке или получение данных с любого сервера главное знать ресурс (выполняемую функцию) и тело запроса.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода):
.epf 9,67Kb
135 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Стояла задача отправить данные по API на внешний сервер из 1С, задача достаточно тривиальная, но возникли некоторые сложности поскольку у меня никак не выходило отправить данные через POST. После того как была написана данная обработка сразу смог определить проблему.

Тестировалось в УПП 1.3 (8.3.9.2170)

В моем соединении нету пользователя, пароля, не используется защищенное соединение. Если Вам необходимы эти параметры их можно добавить в строке "Все параметры подключения" и вынести поля на форму или написать комментарий я обновлю обработку.

Основной код отправки данных из описанного функционала (у меня использовалось только GET и POST, остальное добавил вдруг кому пригодится):

Процедура ОсновныеДействияФормыPOST(Кнопка)
	ВыполнитьСоединение("POST");	
КонецПроцедуры

Процедура ОсновныеДействияФормыGET(Кнопка)
	ВыполнитьСоединение("GET");
КонецПроцедуры

Процедура ОсновныеДействияФормыPATCH(Кнопка)
	ВыполнитьСоединение("PATCH");
КонецПроцедуры

Процедура ОсновныеДействияФормыPUT(Кнопка)
	ВыполнитьСоединение("PUT");
КонецПроцедуры

Процедура ОсновныеДействияФормыDELETE(Кнопка)
	ВыполнитьСоединение("DELETE");
КонецПроцедуры

Процедура ВыполнитьСоединение(ВидЗапроса)
	
	ЗаголовокHTTP = Новый Соответствие();	
	//Все параметры подключения
	//HTTPСоединение = Новый HTTPСоединение(Сервер,Порт,Пользователь,Пароль,Прокси,Таймаут,ЗащищенноеСоединение,ИспользоватьАутентификациюОС);
	HTTPСоединение = Новый HTTPСоединение(Сервер,Порт,,,,,);
    HTTPЗапрос     = Новый HTTPЗапрос(Ресурс, ЗаголовокHTTP);
	HTTPЗапрос.Заголовки.Вставить("Content-type", ContentType);
	HTTPЗапрос.УстановитьТелоИзСтроки(Тело,"UTF-8");	
	Если ВидЗапроса = "POST" Тогда
		HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "GET" Тогда
		HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "PATCH" Тогда
		HTTPОтвет = HTTPСоединение.Изменить(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "PUT" Тогда
		HTTPОтвет = HTTPСоединение.Записать(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "DELETE" Тогда
		HTTPОтвет = HTTPСоединение.Удалить(HTTPЗапрос);
	КонецЕсли;
    КодСостояния   = HTTPОтвет.КодСостояния;
    ТекстОтвета    = HTTPОтвет.ПолучитьТелоКакСтроку();
	Ответ = "";
	Ответ = Ответ + "Код состояниия (Status code): " + Символы.ПС;
	Ответ = Ответ + КодСостояния + Символы.ПС +"-----------------------" +Символы.ПС;
	Ответ = Ответ + "Текст ответа (Response text): " + Символы.ПС;
	Ответ = Ответ + ТекстОтвета;
	
КонецПроцедуры

Кнопки "JSON", "XML", "POST=" - показывают пример заполнения тела в данном формате (я их использовал для тестирования отправки своих данных в разных форматах). 

Можете поблагодарить, если Вам помог описанный функционал. 

Вступайте в нашу телеграмм-группу Инфостарт

Обработка оправка отсылка получение API HTTP POST GET JSON PATCH PUT DELETE XML получить сайт данные 1С.

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22219    32    24    

26

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4400    22    4    

23

WEB-интеграция Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    10212    7    5    

11

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    20976    61    52    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 12.08.19 15:51 Сейчас в теме
Для простых случаев мне нравится использовать вот этот пример с ИТС https://its.1c.ru/db/metod8dev#content:5574:hdoc он покрывает практически весь нужный функционал с анализом ответов сервера и переадресациями.
AllexSoft; +1 Ответить
3. RustIG 1931 14.08.19 15:51 Сейчас в теме
4. webester 26 14.08.19 17:26 Сейчас в теме
(3)Если много работаешь с HTTP запросами посмотри на коннектор https://infostart.ru/public/709325/
5. RustIG 1931 14.08.19 17:28 Сейчас в теме
2. dsdred 4139 13.08.19 15:42 Сейчас в теме
Если ВидЗапроса = "POST" Тогда
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "GET" Тогда
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "PATCH" Тогда
HTTPОтвет = HTTPСоединение.Изменить(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "PUT" Тогда
HTTPОтвет = HTTPСоединение.Записать(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "DELETE" Тогда
HTTPОтвет = HTTPСоединение.Удалить(HTTPЗапрос);
КонецЕсли;


Попробуйте заменить на вот это:

HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод(ВидЗапроса,HTTPЗапрос);

Пример: https://infostart.ru/public/886103/
MaxPowerr; user774630; +2 Ответить
6. annainf 04.06.22 03:22 Сейчас в теме
Здравствуйте! А можно через Вашу обработку подключиться по API через двойной ключ,client_ID и client_secret?
7. MaxPowerr 45 17.06.22 08:40 Сейчас в теме
(6)
client_ID

Добрый день. Скорее всего в поле сервер вам необходимо будет написать сервер + ваши ключи, для вызова строки в таком виде:

Соединение.Open("POST", ...oauth/v2/token?grant_type=password&client_id=Ваш ключ&client_secret=Секрет...

Вы можете скопировать код и попробовать самостоятельно.
Для отправки сообщения требуется регистрация/авторизация