Содержание:
1. Общие сведения о WEB- и HTTP-сервисах в 1С
2. Сервисы в учетной программе 1С
3. Различия с точки зрения запросов в учетной системе 1С
1. Общие сведения о WEB- и HTTP-сервисах в 1С
Если клиентская машина и сервер находятся пределах одного здания, то проще соединить их в одну локальную сеть, и соединение между ними обычно осуществляется по протоколу TCP/IP.
Однако всё чаще используется подключение пользователей через глобальную сеть Internet, когда пользователи находятся в других зданиях, городах, странах, или просто используют мобильные устройства, то есть подключаются через операторов связи.
А также пользователям 1С требуется получать данные с устройств, изначально не имеющих отношения к 1С, начиная от информационных сайтов и интернет-магазинов, и заканчивая разнообразными контроллерами, датчиками, удаленным оборудованием, кассами, терминалами и прочими автономными устройствами.
В таком случае используются WEB- и HTTP-сервисы, предоставляющие такой доступ.
В 1С HTTP-сервисы на платформе 1С 8.3.5.1068 появились летом 2014 года, то есть 10 лет назад, а первые Web-сервисы и того раньше, как минимум, уже в 8.1, то есть 2006 году.
Исходя из этого, можно предположить, что Web-технология более простая и примитивная? Однако, нет, скорее даже, наоборот.
WEB-сервисы появились раньше, потому что позволяли связываться с уже разработанными сервисами (не использующими 1С), работающими на абсолютно разных платформах (иногда даже без знания особенностей этих платформ) и использовали предоставляемые ими возможности коммуникации.
WEB-сервисы позволяют передавать данные в значительных объемах, зачастую излишних, но при этом ограничены стандартными возможностями web-интерфейса.
HTTP-сервисы позволяют создавать коммуникации «с нуля», с простыми приборами, имеющими выход в Интернет: кассовые терминалы, весы, измерительные приборы и датчики.
В самых общих словах, если WEB – это Интернет людей, то HTTP – это Интернет вещей.
На самом деле, ничто не запрещает использовать HTTP-сервисы и для работы с сайтами, но это будет более трудоемким с точки зрения разработки, хотя, возможно, более эффективным с точки зрения производительности и гибкости работы.
В какой-то степени можно сравнить эти сервисы с также очень похожими форматами XML (для web), и JSON (для HTTP), которые тоже родственные, но имеют разные функции и возможности.
В основном, исходя из разных целей и методов, возникает и разница в фактической реализации сервисов в 1С.
2. Сервисы в учетной программе 1С
Просто зайдя в конфигуратор любой современной конфигурации 1С, можно увидеть соответствующие метаданные и заготовки для их быстрого создания.
В новой конфигурации списки пустые, а в типовой конфигурации обычно уже есть несколько заполненных сервисов.
Конфигурация
Список существующих сервисов сильно зависит от назначения типовой конфигурации и решаемых ею задач, но есть немало и однотипных сервисов, например Exchange, связанных с обменом данными. Для статьи использованы примеры из конфигурации Бухгалтерия Предприятия 3.0.
Список сервисов
В создании и настройке WEB и HTTP сервисы похожи, но все же имеют существенные различия.
Сходны они тем, что используют в качестве посредника публикацию на специальном Web-cервере. В этом качестве обычно используют Apache HTTP Server, Nginx, Microsoft Internet Information Services (IIS) (в сумме почти 80% всех применений), но ими список не ограничивается.
Уже по рисункам и количеству вкладок и полей, которые нужно заполнять, видно, что Web немного сложнее, так как требуется ещё создать и подключить пакеты XDTO.
XDTO-пакет - это объект метаданных 1С, целью которого является задание структуры данных, описание их типов и свойств, включающая проверку и совместимость этих данных, а также возможность обработки произвольных данных.
Предназначение XDTO - сопоставление данными между 1С и другими системами в XML.
WEB-сервисы используют более сложную организацию «URL пространства имён» вместо просто «корневой URL» HTTP-сервиса. То есть используется иерархию имён, разделённых точками, которая может включать в себя несколько уровней вложенности. Пространства имён URL используются для организации и группировки ресурсов на сайте, обеспечивая более удобный доступ к ним и облегчая навигацию для пользователей и поисковых систем.
kl_WebСервис1
Шаблоны URL1
AgentScripts
Публикация на веб-сервере, WEB-сервисы
Публикация на веб-сервере, HTTP-сервисы
3. Различия с точки зрения запросов в учетной системе 1С
Сами программы-обработчики, с точки зрения кода, находится Модуле сервисов.
И здесь тоже есть некоторые различия.
В основном, для получения и изменения данных любой сервис использует четыре основных метода HTTP - GET, POST, PUT и DELETE.
HTTP-сервисы могут быть основаны на разных технологиях и протоколах, в основном на JSON. Однако HTTP сам по себе является базовым протоколом для передачи данных в интернете, поэтому HTTP-сервисы могут использовать методы напрямую.
• GET-запрос — метод для чтения данных с сервера, когда клиент отправляет запрос на сервер, указывая параметры поиска, и получает ответ в формате XML. Метод GET подходит для запроса небольших объёмов несекретных данных.
• POST- запрос — метод отправки данных, как правило после авторизации на сайте. Информация записана в тело запроса и защищена от перехвата.
• PUT - запрос— метод для изменения существующих ресурсов.
Вместе с ними, HTTP-сервисы активно используют еще 3 дополнительных метода, которые имеют более узкое применение.
• HEAD — это метод HTTP-запроса, который позволяет получить только заголовки ответа сервера без содержимого. Он используется для проверки доступности ресурса, определения его размера или других метаданных.
• PATCH — это метод HTTP-запроса, который позволяет внести частичные изменения в указанный ресурс по указанному расположению. Это полезно для обновления или исправления существующих ресурсов без полной их замены.
• OPTIONS — это метод HTTP-запроса, который позволяет запросить информацию о сервере, включая информацию о допускаемых к использованию на сервере HTTP-методах.
WEB — это сервис-ориентированная технология, по сути является удаленным вызовом процедур на сервере, с использованием технологии XDTO, чтобы проверять входящие и исходящие данные, передаваемые в формате XML.
Поэтому WEB достаточно редко использует перечисленные запросы в чистом виде, а гораздо чаще – методы, основанные на этих запросах.
Можно сказать, что WEB-сервисы основаны на протоколе SOAP.
SOAP - от англ. Simple Object Access Protocol — простой протокол доступа к объектам сообщениями в виде XML.
SOAP-сервисы ориентированы на действия и в этом отличаются от HTTP, технологии, ориентированной на ресурсы.
Это означает, что HTTP-сервис предоставляет доступ непосредственно к данным и функциям ресурса, а SOAP-сервис предоставляет доступ к методам, выполняющим операции над этими ресурсами.
Поэтому в HTTP описание, проверка типов, входящих и исходящих данных является уже задачей программиста, так как подразумевается, что обращение идет к ресурсу нужного типа.
Зато есть возможность не ограничиваться имеющимися методами, а самому задавать заголовки, параметры и тело запроса.
В итоге, WEB-сервисы в 1С часто реализуют более сложные сценарии интеграции и взаимодействия, где требуются дополнительные методы и функциональности.
Получение списка объектов:
вместо прямого GET-запроса, WEB-сервисы могут использовать более сложные методы для получения списков объектов, например, с фильтрацией и сортировкой.
Получение данных по идентификатору:
WEB-сервисы могут предоставлять методы для получения конкретного объекта по его идентификатору, используя параметры в URI.
Обновление объектов: Вместо прямого PUT-запроса, WEB-сервисы могут предоставлять методы для обновления существующих объектов, передавая обновленные данные в теле запроса.
Замена объектов:
WEB-сервисы могут поддерживать полную замену объектов новыми данными, используя PUT-запросы.
Веб-сервисы чаще используют POST-запросы, нежели остальные запросы, и почти не используют напрямую дополнительные HTTP-запросы.
Таким образом, хотя базовые GET, POST и PUT запросы используются, WEB-сервисы в 1С чаще применяют методы, основанные на этих запросах, для реализации более сложных и гибких сценариев интеграции и взаимодействия. Это позволяет более точно и эффективно управлять данными и операциями в системе.
Специалист компании ООО "Кодерлайн"
Дмитрий Сарычев






