Использование HTTP запросов в 1С
В данной статье будет рассмотрено, что из себя представляют HTTP – методы, для чего они были придуманы, как применяются и используются в 1С.
В современном мире сети работают по стеку протоколов TCP/IP, состоящий из 4 уровней. Нас интересуют «Протоколы верхнего уровня», в которые входят DNS, POP3, SSH, FTP, SMTP, HTTP и многие другие.
Остановимся и рассмотрим подробнее интересующий нас HTTP – протокол передачи данных, который используется для получения данных с web – интерфейсов. Данный протокол отвечает за взаимодействие между двумя компьютерами, один из которых выступает клиентом, а другой сервером. Первый отправляет запрос (Request) и получает ответ (Response) от сервера.
Работа протокола HTTP осуществляется за счет 4 методов – GET (получить ресурс), POST(создать ресурс), PUT (обновить ресурс), DELETE (удалить ресурс).
1С – это система автоматизации управления и учета, которая позволяет автоматизировать работу предприятий разных отраслей. Одной из особенностей 1С является возможность использования HTTP – запросов для взаимодействия с web –сервисами и интеграции с другими системами. В данной статье мы рассмотрим основы работы с HTTP-запросами в 1С и их использование в разработке web –приложений.
Одним из преимуществ использования HTTP-запросов в 1С является то, что они позволяют быстро и легко интегрироваться с другими web – сервисами. Это может быть полезно, например, для автоматического обновления цен в вашей базе данных 1С при изменении цен на товары на стороннем сайте.
Однако, следует учитывать, что использование HTTP-запросов может иметь и некоторые недостатки. Во-первых, оно может снизить производительность вашего приложения, так как каждый HTTP-запрос требует времени на обработку и передачу данных. Во-вторых, использование HTTP-запросов также может привести к проблемам с безопасностью, так как они могут быть подвержены атакам типа “человек посередине” (Man-in-the-Middle).
Рассмотрим непосредственный пример работы HTTP запросов в 1С. В случае интеграции с внешним web – интерфейсом. В большинстве случаев для доступа к внешним ресурсам на большинстве сайтов необходимо пройти авторизацию. Существует множество способов авторизации: логин/пароль, с помощью ЭЦП, двухфакторная авторизация. Рассмотрим самый простой способ, используя логин и пароль.
На первом этапе необходимо создать HTTP – соединение, которое предназначено для взаимодействия с внешними системами.
Реализуется данное соединение через объект HTTPСоединение, у данного объекта существуют следующие свойства:
- ЗащищенноеСоединение (SecureConnection) – содержит объект защищенного соединения;
- ИспользоватьАутентификациюОС (UseOSAuthentication) – Содержит текущее значение использования аутентификации NTLM или Negotiate на сервере;
- Пароль (Password) – Пароль пользователя, от имени которого установлено соединение;
- Пользователь (User) – Пользователь, от имени которого установлено соединение;
- Порт (Port) – Порт сервера, с которым произведено соединение;
- Прокси (Proxy) – Прокси, через который установлено соединение;
- Сервер (Host) – Сервер, с которым произведено соединение;
- Таймаут (Timeout) – Определяет время ожидания осуществляемого соединения и операций, в секундах.
Во время разработки, зачастую достаточно передать только свойство – сервер. Остальные параметры либо имеют необязательный характер, либо могут задаваться отдельно.
Дальнейшая разработка ведется совместно с документацией интегрируемого ресурса и отталкивается от того, что необходимо сделать. Будем считать, что наша задача – авторизоваться на сайте используя логин/пароль.
Если мы будем выполнять авторизацию в каком – то web-интерфейсе в реальной жизни, нам необходимо перейти на страницу авторизации, так и в написании HTTP запроса необходимо передать правильно «путь» - URL сайта по которому происходит авторизация с передачей параметров – логин/пароля. На рисунке 3 представлен запрос авторизации на сайте.
Следует понимать, что при написании собственного запроса, Ваш URL будет другой, однако принцип остается такой же. Вместе с запросом на подключение, в языке программирования 1С предусмотрена передача «Заголовков» - набор именованных параметров запроса. Каждый запрос может содержать различное количество таких параметров, говоря простым языком это передача каких-то обязательных или не обязательных параметров с помощью соответствия, в случае с авторизацией это может быть API или token.
После того как мы сформировали запрос, он отправляется на сервер, обрабатывается, результат выполнения запроса возвращается в виде кода ответа. Существует множество кодов ответа, нас интересует код – 200, который означает успешное выполнение запроса, чтобы проверить, какой именно пришел код ответа можно воспользоваться способом, который представлен на рисунке ниже.
Далее в режиме отладки проверяем, наш код ответа. Подводя итог, еще раз резюмируем общий сценарий работы с HTTP запросами в 1С:
- Установка соединения с сервером;
- Подготовка и отправка запроса на сервер;
- Сервер принимает и обрабатывает полученный запрос;
- Сервер формирует результат выполнения запроса и отправляет ответ;
- Отправитель получает ответ и анализирует код состояния.
Использование HTTP-запросов в 1С имеет свои преимущества и недостатки. Если вам нужно быстро интегрироваться с другим web – сервисом, то использование HTTP-запросов может быть хорошим выбором. Однако, если вы разрабатываете высоконагруженное приложение или заботитесь о безопасности данных, то стоит рассмотреть другие способы интеграции.
В заключении
Специалисты компании «1С:БИЗНЕС РЕШЕНИЯ» помогут Вам освоить все возможности 1С, проведут бесплатную демонстрации программ и ответят на вопросы!
Узнать подробнее о возможностях программы и заказать бесплатную демонстрацию можно по телефону +7(3532)43-05-17.