HTTP запросы в 1С: свойства, методы, примеры использования

Начиная со второй версии 8 платформы, у пользователей и разработчиков появилась возможность использования непосредственно в 1С http запрос. При этом программа поддерживает два типа запросов:

  • POST запросы;
  • GET запросы.

Таким образом, был создан достаточно удобный инструмент для обмена данными и взаимодействия с веб сервисами и службами, работающими через http.

GET запрос

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

  1. Получим тело главной страницы нашего сайта;
  2. Отработаем перенаправление запроса;
  3. Заберем картинку с сайта.

Получение тела сайта

Начнем с простого. На Рис.1 представлен код, возвращающий текстовое представление главной страницы сайта blog.it-terminal.ru.

Рис.1

Результатом выполнения этого участка кода является достаточно большой текст, конечный участок которого отображен на Рис.2.

Рис.2

В первой строке кода мы создаем объект соединения с http ресурсом. Объект может содержать следующие свойства:

  • Сервер — строка подключения, содержащая адрес сервера;
  • Порт – содержит число, указывающее на порт сервера, по умолчанию, в зависимости от типа подключения, можно указать 80 для незащищенных соединений или 443 для защищенных SSL.
  • Имя пользователя – указывается, если необходима авторизация на сервере;
  • Пароль – пароль пользователя на указанном ресурсе;
  • Прокси – может содержать объект типа ИнтернетПрокси, указывается, когда для связи с сервером используется прокси;
  • ЗащищенноеСоединение – по умолчанию имеет значение ЛОЖЬ, переключение в ИСТИНА указывает на использование https протокола.

Кроме этого, у объекта HTTPСоединение существуют свои методы, обращение к которым позволяет более полно описать алгоритм выполнения обработчика:

  • ВызватьHTTPметод – содержит два обязательных параметра HTTPметод и HTTPзапрос, поддерживает возможность записи тела ответа в файл, указанный в третьем параметре;
  • Записать – с помощью PUT запроса отправляет данные на сервер;
  • Изменить – изменяет объект, обрабатывая PATCH запросы;
  • ОтправитьДляОбработки – метод указывающий на использование POST запроса, как и во всех предыдущих методах, обязательно должен содержать текст запроса, так же может передавать адрес файла ответа для записи данных;
  • Получить – о нем подробнее будет рассказано ниже;
  • ПолучитьЗаголовки – еще один метод, который будет использован в статье;
  • Удалить – фактически это запрос Delite, который удаляет переданный в запросе ресурс с сервера.

Второй строкой мы создаем запрос к выбранному сайту, текст нашего обращения содержит один слэш, а это значит, что мы хотим получить главную страницу. Если бы следом за слешем шло какое-либо выражение, например «page2» или «news» мы бы получили другую страницу.

Третья строка выполняет наш запрос к серверу.

В четвертой мы показываем результат.

Отработка перенаправления http запроса

Представим ситуацию, когда нам надо программно получить результат поиска через любую поисковую систему по ключу «Запросы в 1с». Участок кода, необходимый для обращения к GOOGLE указан на рис.3

Рис.3

Здесь помимо уже знакомых нам конструкций присутствуют Заголовки и КодСостояния. Разберемся с ними.

КодСостояния – стандартная величина, оговоренная в «Request for Comments» , может принимать следующие значения:

  1. Если все нормально вернется значение в диапазоне от 100 до 299;
  2. В случае перенаправления вернется код в диапазоне от 300 до 399, в нашем случае удачное постоянное перенаправление на ресурс определится кодом 301;
  3. При ошибках в запросе параметр примет значение от 400 до 499;
  4. Значение в области 500-599 указывает на проблемы с сервером.

У каждой страницы есть заголовок, в тексте которого можно выделить несколько параметров (Рис.4):

Рис.4

  1. Схему подключения (все, что идет до двух слешей «//»);
  2. Адресную строку соединения ;
  3. Имя пользователя и пароль;
  4. Порт и хост для подключения.

Именно эту разбивку выполняет функция РазбитьСтрокуАдреса. Получив, таким образом, новый адрес, мы можем сохранить страницу на нашем компьютере и открыть её в браузере по умолчанию (процедура ПолучитьСтраницу).

Содержание процедуры ПолучитьСтраницу показано на Рис.5

Рис.5

Здесь нет новых функций и способов работы с запросами, мы фактически создаем текстовый документ из тела сайта и запускаем страницу в браузере.

Файл мы помещаем в корень диска D и называем test.

Забираем картинку с сайта

Возникает естественный вопрос: если нам не нужен весь сайт целиком, а необходимо получить только отдельные его элементы, можно ли это сделать и как? Да можно. Код программы, позволяющий это сделать, представлен на Рис.6

Рис.6

Как видно из рисунка, в теле запроса у нас представлен код элемента структуры сайта, который нам необходимо получить. Этой части не было в нашем предыдущем описании и на этом моменте нужно остановиться подробнее.

Мы использовали браузер Opera для доступа к сайту. В нем имеется один важный для нас инструмент, при щелчке правой кнопкой мыши на элементе, можно вызвать контекстное меню, один из пунктов которого «Посмотреть код элемента».

Именно благодаря ему, мы можем получить адрес, который будет использоваться в запросе Рис.7.

Рис.7

POST-запрос

В отличие от несложных Get запросов, POST http запросы имеют текстовое тело, которое может храниться как в обычном текстовом виде, так и в виде файлов с расширением xml, soap, json.  В сети достаточно много инструментов для создания текстов запроса, которые позволяют отлаживать и мониторить исполнение тех или иных обращений.

В 1С для того, чтобы запустить запрос с определенным текстом , у объекта HTTPзапрос есть процедура УстановитьТелоИзСтроки.


Добавить комментарий

Ваш e-mail не будет опубликован.

*

code


Формирование бухгалтерской отчетности в 1С:Бухгалтерии 8
В апреле 2019 года Минфин внес изменения во все формы бухгалтерской отчетности. Часть поправок действует с 01.06.2019. Как сформировать в ...
Что нужно знать компаниям при работе с самозанятыми
Работа с самозанятыми. Что это за категория, где граница их активности: географическая, финансовая и по видам деятельности. Порядок налогообложения – ...
Как в 1С:Бухгалтерия контролировать сумму страховых взносов в КУДиР
В каких случаях можно признать в расходах при УСН страховые взносы. Как обнаружить ошибку в признании страховых взносов в расходах ...
1С:ERP Урок 39. Склад. Инвентаризация товаров
Тридцать девятый видеоурок вводного курса по «1С:ERP Управление предприятием». Продолжаем рассматривать подсистему «Склад и доставка». Тема на сегодня – инвентаризация ...
Выставление единого корректировочного счета в 1С:Бухгалтерии
Продавец вправе выставить единый корректировочный счет-фактуру при изменении стоимости товаров (работ, услуг, имущественных прав), которые указаны в в ранее выставленных ...
Регистрация среднего заработка на период трудоустройства бывшего сотрудника в 1С:ЗУП ред.3
Если сотрудник уволен в связи с ликвидацией организации или сокращением численности (штата) работников организации, ему выплачивается выходное пособие в размере ...
Удержание НДФЛ при выплате аванса в последний рабочий день в 1С:ЗУП ред 3
Если аванс выплачивается сотруднику в последний день месяца, то день выплаты совпадает с датой фактического получения дохода за этот месяц ...
1С:ERP Урок 38. Склад. Внутреннее товародвижение
Тридцать восьмой видеоурок вводного курса по «1С:ERP Управление предприятием». Начинаем рассматривать подсистему «Склад и доставка». Данная подсистема будет рассмотрена в ...