Интеграция современных информационных систем невозможна без использования веб-сервисов. Платформа 1С:Предприятие предоставляет мощный инструментарий для взаимодействия с внешними ресурсами через протоколы HTTP и SERVICES. Это позволяет обмениваться данными с интернет-магазинами, государственными порталами, банковскими системами и CRM в реальном времени. Понимание принципов работы с этими технологиями является обязательным навыком для любого разработчика или администратора.

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

Подготовка к интеграции и получение WSDL

Первым шагом перед написанием кода является получение описания интерфейса внешнего сервиса. Обычно поставщик услуги предоставляет ссылку на файл WSDL (Web Services Description Language). Этот XML-документ содержит всю необходимую информацию о методах, типах данных и адресах endpoints. Без этого файла автоматическая генерация прокси-объектов в 1С невозможна.

Для работы вам потребуется действующая ссылка, доступная из сети, где запущен сервер 1С. Если сервис находится в закрытом контуре, убедитесь, что firewall не блокирует исходящие запросы на соответствующий порт. Часто требуется авторизация, поэтому заранее запросите логин и пароль или SSL-сертификат у провайдера услуги.

⚠️ Внимание: Ссылка на WSDL может быть динамической. Если сервис использует балансировку нагрузки, адрес может измениться. Всегда проверяйте актуальность URL в документации провайдера перед началом настройки.

После получения ссылки сохраните её. Она будет использоваться в конструкторе подключения. Иногда провайдеры предоставляют Swagger-документацию вместо классического WSDL. В таком случае вам может потребоваться сторонний конвертер или ручное описание структуры запроса, так как встроенные средства 1С ориентированы преимущественно на SOAP и REST через HTTP-соединение.

Настройка HTTP-соединения в конфигураторе

Для непосредственного взаимодействия с ресурсом в дереве метаданных конфигурации необходимо создать объект типа HTTP-соединение. Это делается в режиме Конфигуратор через контекстное меню ветки "Общие". Данное действие создаст шаблон, который платформа будет использовать для управления сетевыми параметрами.

В свойствах нового элемента укажите имя, по которому вы будете обращаться к соединению в коде. Основное поле — "Адрес интернет-ресурса". Сюда вставляется базовый URL сервиса, например, https://api.example.com/v1/. Важно не указывать здесь конкретные методы, только корневой путь.

  • 🔐 Аутентификация: Выберите тип подтверждения прав (обычно HTTP-аутентификация или использование сертификата).
  • 🌐 Прокси: Если сервер 1С находится за корпоративным прокси, укажите его настройки в соответствующих полях.
  • Таймаут: Установите время ожидания ответа, чтобы длинные запросы не зависали бесконечно.

Особое внимание уделите настройкам безопасности. Если используется протокол HTTPS, убедитесь, что на сервере установлены доверенные корневые сертификаты. Ошибки SSL часто возникают именно из-за отсутствия цепочки доверия в хранилище ОС сервера. Для тестовых сред иногда требуется отключить проверку сертификата, но в продуктивной среде это категорически запрещено.

📊 Какой протокол вы чаще используете для интеграции?
SOAP
REST (JSON)
XML-RPC
FTP

Использование веб-сервисов как клиентов (Прокси)

Самый эффективный способ работы со сложными SOAP-сервисами — использование механизма прокси-объектов. Платформа 1С позволяет автоматически сгенерировать код на основе WSDL. Это избавляет разработчика от ручного парсинга XML и формирования тел запросов. Система сама создаст методы, соответствующие операциям удаленного сервиса.

Чтобы создать прокси, перейдите в меню "Администрирование" -> "Веб-сервисы" -> "Создать из WSDL". Вставьте ссылку или укажите путь к локальному файлу. Мастер настройки предложит выбрать методы, которые вы планируете использовать. После завершения в метаданных появится новая ветка с описанием типов и операций.

Соединение = Новый HTTPСоединение("api.partner.ru", 443, "User", "Pass");

Прокси = Новый ВебСервис(Соединение, "ИмяПроксиИзМетаданных");

Результат = Прокси.ПолучитьДанные(Параметр);

Такой подход значительно упрощает поддержку кода. При изменении структуры данных на стороне партнера достаточно обновить прокси, и типы данных в 1С актуализируются автоматически. Однако стоит помнить, что генерация прокси увеличивает размер конфигурации. Для простых REST-запросов этот метод может быть избыточным.

Ограничения прокси-объектов

Автоматическая генерация прокси не всегда корректно обрабатывает сложные вложенные структуры или нестандартные типы данных в WSDL. В таких случаях может потребоваться ручная доработка модуля объекта прокси или использование универсального HTTP-запроса.

Отправка запросов через HTTPЗапрос

Для работы с REST API или простыми сервисами, не имеющими WSDL, используется объект HTTPЗапрос. Этот инструмент дает полный контроль над заголовками, методом (GET, POST, PUT, DELETE) и телом сообщения. Вы сами формируете структуру данных, обычно в формате JSON или XML.

Создание запроса начинается с инициализации объекта и указания ресурса. Затем необходимо установить заголовки, такие как Content-Type и Authorization. Тело запроса передается как поток или строка. Ответ сервера приходит в виде объекта HTTPОтвет, который содержит код состояния и данные.

Метод Назначение Тело запроса
GET Получение данных Отсутствует (параметры в URL)
POST Создание ресурса JSON / XML / Form-Data
PUT Полное обновление JSON / XML
DELETE Удаление ресурса Обычно отсутствует

При работе с большими объемами данных рекомендуется использовать потоки (Поток) вместо загрузки всего содержимого в оперативную память. Это предотвращает превышение лимитов памяти рабочего процесса. Также важно обрабатывать коды ответов: успехом считается диапазон 200-299, остальные коды требуют анализа логов.

💡

Используйте объект ЧтениеJSON для разбора ответа. Он автоматически преобразует JSON-структуру в соответствующие типы 1С (Массив, Структура, Число), что упрощает дальнейшую работу с данными.

Обработка ответов и ошибок соединения

Корректная обработка исключительных ситуаций — залог стабильности системы. Сетевые вызовы всегда потенциально опасны: сервис может быть недоступен, таймаут может истечь, данные могут прийти в неверном формате. Все обращения к внешним ресурсам должны быть обернуты в конструкцию Попытка...Исключение.

Анализируйте свойство КодСостояния объекта ответа. Если сервер вернул 500-ю ошибку, проблема на стороне провайдера. Код 401 или 403 указывает на проблемы с авторизацией. Логирование таких событий обязательно для оперативного выявления сбоев. Не выводите тексты технических ошибок пользователю, сохраняйте их в журнал регистрации.

⚠️ Внимание: Никогда не оставляйте обработку исключений пустой. Молчаливое игнорирование ошибки соединения приведет к потере данных и расхождению учетных систем. Всегда фиксируйте факт неудачи.

Для сложных сценариев реализуйте механизм повторных попыток (retry logic). Если запрос не прошел с первого раза из-за временной недоступности сети, имеет смысл подождать несколько секунд и попробовать снова. Однако избегайте бесконечных циклов повторений, установите лимит попыток.

☑️ Диагностика проблем подключения

Выполнено: 0 / 5

Безопасность и производительность интеграции

При передаче чувствительных данных, таких как персональная информация или финансовые реквизиты, используйте только защищенное соединение HTTPS. Передача данных в открытом виде по HTTP недопустима в современных условиях. additionally, рассмотрите возможность шифрования тела запроса дополнительными алгоритмами, если этого требует политика безопасности предприятия.

Производительность интеграции напрямую влияет на скорость работы пользователей. Не делайте синхронные вызовы к медленным внешним сервисам в основных сценариях проведения документов. Если ответ от веб-сервиса может занимать более 2-3 секунд, выносите обмен в фоновое задание или используйте регламентные задания.

Кэширование данных также помогает снизить нагрузку. Если справочник контрагентов меняется редко, нет смысла запрашивать его при каждом открытии формы. Сохраняйте полученные данные в локальную таблицу и обновляйте их по расписанию или по событию.

💡

Оптимальная стратегия интеграции — это комбинация синхронных запросов для быстрых операций проверки и асинхронной обработки для объемных выгрузок данных.

Часто задаваемые вопросы (FAQ)

Как передать файл через веб-сервис в 1С?

Для передачи файлов используйте тип ДвоичныеДанные. В теле HTTP-запроса файл кодируется в формат Base64 и передается как строка, либо отправляется как multipart/form-data, если сервис поддерживает загрузку файлов напрямую.

Что делать, если 1С не видит сертификат HTTPS?

Необходимо установить корневой сертификат удостоверяющего центра в хранилище "Доверенные корневые центры сертификации" на том компьютере или сервере, где выполняется вызов. Для серверного варианта это делается в хранилище ОС сервера 1С.

Можно ли вызвать веб-сервис из внешнего отчета?

Да, если внешний отчет подключен к информационной базе и использует ту же платформу. Код работы с HTTP-соединением универсален и работает в любых типах объектов: обработках, отчетах, модулях менеджера или формы.

Как ограничить время ожидания ответа от сервиса?

При создании объекта HTTPСоединение используйте параметр Таймаут. Значение указывается в секундах. Если сервер не ответит в течение этого времени, будет сгенерировано исключение о превышении времени ожидания.