С чего начать изучение веб-сервисов в 1С для интеграции с сайтами

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Выбор технологии: SOAP или HTTP-сервисы (REST)

Перед тем как приступить к написанию кода, нам необходимо определиться, какой именно тип сервиса использовать. В платформе 1С реализовано два основных механизма:

  1. Web-сервисы (SOAP): Это классический протокол, основанный на XML. Он строго типизирован и требует описания интерфейса с помощью файла WSDL. В 1С работа с ними тесно связана с механизмом XDTO (XML Data Transfer Objects). Рассмотрим этот вариант, если внешняя система (сайт) жестко требует соблюдения протокола SOAP.
  2. HTTP-сервисы (REST): Более современный, легкий и популярный подход. Он использует стандартные методы протокола HTTP (GET, POST, PUT, DELETE) и чаще всего оперирует форматом JSON. Для обмена с современными сайтами и мобильными приложениями рекомендуется использовать именно HTTP-сервисы из-за их гибкости и меньшего объема передаваемых данных.

Изучение теоретической базы

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

Необходимые инструменты для тестирования

Одной из главных сложностей для новичка является отладка. Мы не можем просто нажать кнопку в 1С и увидеть результат работы сервиса. Нам нужны инструменты, имитирующие запросы со стороны сайта:

Postman — это обязательный инструмент для любого разработчика, работающего с HTTP-сервисами. В нем мы можем сформировать запрос, указать заголовки (Headers), тело запроса (Body) в формате JSON и мгновенно получить ответ от 1С. Это позволяет отладить логику сервиса еще до того, как веб-разработчики со стороны сайта начнут писать свой код.

SoapUI — аналогичный инструмент, но специализирующийся на SOAP-запросах. Он умеет читать WSDL-описание вашего сервиса и автоматически генерировать шаблоны запросов, что значительно экономит время.

Работа с форматами данных: JSON и XML

Выясним, как 1С преобразует свои данные в формат, понятный веб-сервису. Для работы с JSON в современных версиях платформы (8.3.6 и выше) используются встроенные функции:


// Пример записи данных в формат JSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
СтруктураДанных = Новый Структура("Артикул, Цена", "001", 1500);
ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
РезультатСтрокой = ЗаписьJSON.Закрыть();

Проанализируем этот код: мы создаем структуру, которая затем автоматически преобразуется в JSON-строку. Аналогично работает функция ПрочитатьJSON(), которая превращает входящий текст от сайта в объекты 1С (Структуры и Соответствия).

Для SOAP-сервисов ситуация сложнее: нам потребуется изучить фабрику XDTO. Она выступает переводчиком между объектами 1С и XML-схемой. Нужно создать пакет XDTO в конфигурации, описать типы данных и использовать их в свойствах веб-сервиса.

Настройка публикации на веб-сервере

Веб-сервисы 1С не работают напрямую из конфигуратора. Чтобы сервис стал доступен по ссылке, его нужно опубликовать на веб-сервере. Разберем шаги публикации:

  1. Установка веб-сервера: Для Windows обычно выбирают IIS (Internet Information Services) или Apache. Для Linux-систем стандартом является Apache.
  2. Публикация из конфигуратора: Перейдем в меню «Администрирование» — «Публикация на веб-сервере».
  3. Настройка параметров: В окне публикации необходимо выбрать флажки «Публиковать Web-сервисы» или «Публиковать HTTP-сервисы» и указать имя публикации.
  4. Проверка прав: Убедимся, что у пользователя операционной системы, под которым запущен веб-сервер, есть права доступа к каталогу с базой 1С и программным файлам платформы.

Особенности отладки кода веб-сервисов

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

Если отладка не срабатывает, используем проверенный метод — логирование. Запишем входящие данные в текстовый файл или в специально созданный справочник «ЛогЗапросов». Это позволит увидеть, что именно пришло от сайта в момент ошибки.

Безопасность и авторизация

Нельзя оставлять сервис открытым для всех. Рассмотрим, как ограничить доступ:

Во-первых, это базовая авторизация. При каждом запросе сайт должен передавать логин и пароль пользователя 1С в закодированном виде (Base64) в заголовке Authorization. В самой 1С для этого пользователя нужно создать отдельную роль, в которой дано право «Использование» именно на этот конкретный веб-сервис.

Во-вторых, использование SSL/HTTPS. Передача данных по открытому каналу HTTP небезопасна, так как пароли могут быть перехвачены. Настройка сертификата безопасности производится на стороне веб-сервера (Apache или IIS).

Практический совет по быстрому старту

Рассмотрим простейший алгоритм для тех, кто делает это впервые: Создайте пустой HTTP-сервис в конфигураторе с одним шаблоном и методом GET. В модуле метода напишите возврат простой строки «Hello, World!». Опубликуйте базу на Apache. Попробуйте открыть полученную ссылку в обычном браузере. Если браузер запросил логин/пароль и после ввода показал вашу строку — поздравляем, вы успешно настроили инфраструктуру! Теперь можно переходить к сложной логике обмена данными.

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

← На главную