Web-сервисы
SOAP механизм предоставления API для интеграции 1С с внешними системами через XML и WSDL. Механизм для строгой типизированной интеграции через XML. Ключевые компоненты: WSDL (контракт), WS-ссылка (подключение).
Ключевые понятия
| Понятие | Описание | Роль в 1С |
|---|---|---|
| SOAP | Протокол обмена XML-сообщениями | Основа веб-сервисов |
| WSDL | Язык описания веб-сервисов (XML) | Автодокументация и валидация |
| WS-ссылка | Объект для подключения к внешним сервисам | Автогенерация прокси-класса |
Ответы на ключевые вопросы
1. Публикация веб-сервиса:
Требования:
- Установленная платформа 1С с компонентой веб-сервисов
- Веб-сервер (IIS/Apache) с поддержкой 1С
- Настроенная публикация ИБ
Шаги:
Конфигуратор → Администрирование → Публикация ИБ
• Указать имя, каталог
• Включить веб-сервисы
• URL для доступа: http://server/публикация/ws
2. Определение операций во внешнем сервисе:
// Через WS-ссылку в конфигураторе:
1. Добавить WS-ссылку (URL WSDL)
2. Платформа загрузит описание
3. В свойствах → все доступные операции и их сигнатуры
3. Возврат двоичных данных:
// Только в формате Base64 (ограничение SOAP)
4. SOAP, WSDL, WS-ссылка:
SOAP → "КАК" обмениваемся (XML + HTTP)
WSDL → "ЧТО" можно вызвать (контракт)
WS-ссылка → "ИНСТРУМЕНТ" в 1С для работы по WSDL
// Практическое использование:
WS = Новый WSСсылки("http://server/service?wsdl");
Результат = WS.Сервис().Метод(Параметры); // Автогенерация вызова
Особенности веб-сервисов
Ограничения и особенности:
- Только XML — никакого JSON
- Base64 для бинарных данных — накладные расходы
- Сложная структура — XSD, namespaces, сложные типы
- WSDL обязателен — без него нельзя корректно подключиться
Веб-сервисы vs HTTP-сервисы
Критерии выбора:
| Критерий | Веб-сервисы (SOAP) | HTTP-сервисы (REST) |
|---|---|---|
| Когда выбирать | ✅ 1С ↔ 1С интеграция✅ Банки, гос.системы✅ Сложная бизнес-логика | ✅ Мобильные приложения✅ Веб-интерфейсы✅ Современные интеграции |
| Формат данных | ❌ Только XML | ✅ JSON, XML, любой |
| Бинарные данные | ❌ Base64 (распухание) | ✅ Прямая передача |
| Сложность | ⚠️ Высокая (WSDL, XSD) | ✅ Низкая (HTTP + JSON) |
| Стандартизация | ✅ Строгая (контракт WSDL) | ⚠️ Гибкая (договоренности) |
| Использование в в наше время | ⬇️ Устаревает, но необходимо для legacy | ⬆️ Основной выбор для новых проектов |
Правило выбора:
Веб-сервисы (SOAP) — для интеграции с корпоративными системами, банками и гос.органами, где есть готовый WSDL.
HTTP-сервисы (REST) — для всего остального, особенно для мобильных и веб-приложений.