Если вы работаете с 1С:Предприятие и сталкиваетесь с задачами интеграции — например, обменом данными с банками, госуслугами или внешними системами — то рано или поздно услышите про WSDL. Этот термин часто вызывает путаницу: одни считают его форматом файла, другие — протоколом, третьи — просто"чем-то для программистов". На самом деле WSDL (Web Services Description Language) — это стандарт описания веб-сервисов, который играет ключевую роль в автоматизированном обмене данными между 1С и внешними системами.
В этой статье мы разберём, что такое WSDL на практике, как он связан с 1С, и почему без него невозможно настроить корректный обмен данными через SOAP. Вы узнаете, где взять WSDL-файл для популярных сервисов (Сбербанк, ФНС, ЭДО), как его подключить в конфигураторе 1С, и какие ошибки чаще всего возникают при работе с ним. Материал будет полезен и администраторам, и разработчикам — от новичка до опытного специалиста.
Что такое WSDL и зачем он нужен в 1С
WSDL (Web Services Description Language) — это XML-документ, который описывает интерфейс веб-сервиса: какие методы (функции) доступны, какие параметры они принимают, какой формат ответа возвращают. Фактически, это"паспорт" сервиса, по которому 1С понимает, как с ним взаимодействовать.
Без WSDL интеграция с внешними системами была бы крайне сложной: пришлось бы вручную прописывать все адреса, форматы данных и правила обмена. С WSDL этот процесс автоматизируется: 1С самостоятельно считывает описание сервиса и генерирует необходимые объекты для работы с ним. Например, при подключении к веб-сервису Сбербанка для выгрузки платежных поручений WSDL-файл расскажет 1С:
- 📌 Какие методы доступны (например,
GetStatementдля выписки илиSendPaymentдля отправки платежа). - 📌 Какие параметры требует каждый метод (номер счёта, дата, сумма и т.д.).
- 📌 В каком формате будет ответ (JSON, XML) и как его обработать.
- 📌 Где расположен endpoint (адрес сервиса в сети).
В контексте 1С WSDL используется преимущественно для работы с SOAP-веб-сервисами (в отличие от REST, где описание API часто даётся в формате OpenAPI/Swagger). Например, при интеграции с:
- 🏦 Банками (Сбербанк, Тинькофф, Альфа-Банк) для обмена платежными документами.
- 📄 Госорганами (ФНС, ПФР, Росстат) для сдачи отчётности.
- 📦 Логистическими компаниями (СДЭК, Boxberry) для отслеживания грузов.
- 🔄 Системами ЭДО (Контур.Диадок, СБИС) для электронного документооборота.
Как WSDL связан с SOAP и REST в 1С
Чтобы понять роль WSDL, нужно разобраться в различиях между SOAP и REST — двумя основными подходами к созданию веб-сервисов. В 1С оба варианта поддерживаются, но используются по-разному:
| Характеристика | SOAP (с WSDL) | REST (обычно без WSDL) |
|---|---|---|
| Формат описания | WSDL (обязателен) | OpenAPI/Swagger (не всегда) |
| Протокол | HTTP + XML | HTTP (JSON/XML) |
| Сложность интеграции в 1С | Проще (автоматическая генерация объектов) | Сложнее (ручная настройка) |
| Примеры использования в 1С | Банки, ФНС, ЭДО | API маркетплейсов (Ozon, Wildberries) |
SOAP + WSDL — классический подход для корпоративных систем, где важны надёжность и строгая типизация данных. В 1С для работы с SOAP-сервисами WSDL-файл загружается в конфигуратор, после чего платформа автоматически создаёт HTTP-соединение и описание методов. Например, при подключении к веб-сервису Сбербанка вы:
- Скачиваете WSDL-файл с сайта банка.
- Импортируете его в 1С через
Файл → Открыть. - Платформа генерирует объекты для вызова методов (например,
СбербанкВС.ПолучитьВыписку).
REST обычно не требует WSDL, но в 1С его приходится настраивать вручную через HTTPЗапрос и HTTPСоединение. Это гибко, но требует больше кода. Например, для работы с API Wildberries придётся самостоятельно формировать URL, заголовки и обрабатывать JSON-ответы.
WSDL упрощает интеграцию с SOAP-сервисами в 1С, автоматизируя создание объектов для вызова методов. Для REST такой механизм не предусмотрен — требуется ручная настройка.
Где взять WSDL-файл для интеграции с 1С
Источник WSDL-файла зависит от того, с какой системой вы интегрируетесь. Вотчные варианты:
- 🏦 Банки: WSDL предоставляется в личном кабинете или по запросу в поддержку. Например, для Сбербанк Бизнес Онлайн файл называется
BankService.wsdlи скачивается в разделе"Интеграция". - 📄 Госуслуги: ФНС и ПФР публикуют WSDL на своих порталах (например, для сдачи отчётности через Электронный документооборот). Обычно это файлы вроде
FNSNDS.wsdl. - 📦 Логистика: СДЭК, Boxberry и другие курьерские службы выкладывают WSDL в документации для партнёров. Например, для отслеживания заказов в СДЭК нужен файл
TrackingService.wsdl. - 🔄 ЭДО: В системах электронного документооборота (Контур.Диадок, СБИС) WSDL генерируется автоматически при настройке обмена.
🔍 Как найти WSDL для конкретного сервиса:
- Ищите раздел"API" или"Интеграция" на сайте поставщика услуг.
- В документации ищите упоминания
.wsdlили"описание веб-сервиса". - Если файла нет в открытом доступе, обратитесь в техническую поддержку с запросом.
Сохраните WSDL-файлы в отдельной папке проекта — при обновлении сервиса может потребоваться новая версия файла. Не храните его только в 1С!
⚠️ Внимание: некоторые сервисы (например, ФНС) регулярно обновляют свои WSDL-файлы. Если после обновления 1С перестаёт отправлять данные, проверьте актуальность файла на сайте поставщика.
Как подключить WSDL в 1С: пошаговая инструкция
Рассмотрим процесс подключения WSDL на примере интеграции с веб-сервисом банка. Инструкция актуальна для 1С:Предприятие 8.3 (управляемые формы).
Шаг 1. Получение WSDL-файла
Скачайте файл с сайта банка (например, BankService.wsdl) и сохраните его на диск.
Шаг 2. Импорт в конфигуратор
- Откройте конфигуратор 1С в режиме
Конфигуратор. - Перейдите в
Файл → Открытьи выберите скачанный WSDL-файл. - Система предложит создать HTTP-соединение — подтвердите.
- В появившемся окне укажите:
- 📍 Имя соединения (например,
СбербанкВС). - 📍 Адрес сервиса (endpoint, обычно указан в документации банка).
- 📍 Логин/пароль, если требуется аутентификация.
- 📍 Имя соединения (например,
Шаг 3. Генерация объектов
После импорта в дереве конфигурации появится новый объект HTTPСервисы.СбербанкВС. В нём будут автоматически созданы:
- 🔹 Методы (например,
ПолучитьВыписку,ОтправитьПлатеж). - 🔹 Типы данных (структуры для параметров и ответов).
Шаг 4. Использование в коде
Теперь можно вызывать методы сервиса прямо из модулей 1С. Пример кода для получения выписки:
Соединение = HTTPСервисы.СбербанкВС.СоздатьСоединение;
Выписка = Соединение.ПолучитьВыписку(ДатаНачала, ДатаКонца, НомерСчета);
Сообщить(Выписка.ВJSON);
Скачан актуальный WSDL-файл|Проверен адрес endpoint|Настроена аутентификация (логин/пароль)|Создано резервное копирование конфигурации-->
⚠️ Внимание: если при импорте WSDL 1С выдаёт ошибку "Недопустимый формат файла", проверьте:
- 🔸 Файл не повреждён (откройте его в блокноте — должен быть читаемый XML).
- 🔸 Версия 1С поддерживает данный стандарт WSDL (в старых версиях могут быть ограничения).
- 🔸 В файле нет ссылок на внешние схемы (XSD), которые недоступны без интернета.
Типичные ошибки при работе с WSDL в 1С и как их исправить
Даже при корректной настройке интеграция через WSDL может давать сбои. Рассмотрим самые частые ошибки и способы их решения.
| Ошибка | Причина | Решение |
|---|---|---|
Ошибка соединения с сервером (404) |
Неверный адрес endpoint | Проверьте URL в настройках HTTP-соединения |
Недопустимый формат сообщения SOAP |
Несовпадение структуры данных | Сверьте параметры вызова с документацией WSDL |
Ошибка аутентификации (401) |
Неверный логин/пароль или истёк сертификат | Обновите учётные данные в соединении |
Тайм-аут соединения |
Сервер не отвечает или медленный интернет | Увеличьте тайм-аут в настройках или проверьте сеть |
Критическая особенность: если сервис требует сертификат для HTTPS (например, ФНС), 1С может не подключиться без установки корневого сертификата в хранилище Windows. В этом случае:
- Скачайте сертификат с сайта поставщика (обычно файл
.cerили.crt). - Импортируйте его в
Локальное хранилище сертификатовчерезcertmgr.msc. - Перезапустите 1С и повторите попытку соединения.
Ещё одна распространённая проблема — изменение WSDL со стороны поставщика. Например, банк обновил версию API, а вы продолжаете использовать старый файл. В этом случае:
- 🔹 Скачайте актуальный WSDL с сайта поставщика.
- 🔹 Удалите старое HTTP-соединение в 1С.
- 🔹 Импортируйте новый файл и перенастройте интеграцию.
Что делать, если WSDL содержит внешние ссылки (XSD)?
Если при импорте WSDL 1С выдаёт ошибку о недоступных внешних схемах (XSD), скачайте эти файлы вручную и положите их в ту же папку, что и WSDL. Затем откройте WSDL-файл в текстовом редакторе и замените внешние ссылки (например, http://example.com/schema.xsd) на локальные (schema.xsd).
Примеры использования WSDL в 1С: банки, ФНС, ЭДО
Разберём реальные сценарии применения WSDL в типичных задачах интеграции.
1. Обмен с банком (Сбербанк, Тинькофф)
Задача: автоматически загружать банковские выписки в 1С.
- 📌 WSDL-файл:
BankStatementService.wsdl(скачивается в личном кабинете банка). - 📌 Метод:
GetStatement(параметры: дата начала, дата конца, номер счёта). - 📌 Результат: XML с транзакциями, который парсится в документы"Платёжное поручение".
2. Сдача отчётности в ФНС
Задача: отправлять декларации по НДС через веб-сервис ФНС.
- 📌 WSDL-файл:
FNSNDS.wsdl(с сайта nalog.ru). - 📌 Метод:
SendDeclaration(параметры: ИНН, период, файл декларации в XML). - 📌 Особенность: требуется квалифицированная электронная подпись (КЭП).
3. Электронный документооборот (Контур.Диадок)
Задача: отправлять и получать счета-фактуры в формате ЭДО.
- 📌 WSDL-файл: генерируется в личном кабинете Диадока при настройке интеграции.
- 📌 Методы:
SendInvoice(отправка),GetInbox(получение входящих). - 📌 Формат: XML по стандарту ФНС (приказ №ЕД-7-26/99@).
📌 Общий совет: перед настройкой интеграции проверьте, поддерживает ли ваша версия 1С нужный стандарт WSDL (например, WSDL 1.1 или WSDL 2.0). В старых релизах могут быть ограничения.
WSDL 1.1 vs WSDL 2.0: что поддерживает 1С
Существует две версии стандарта WSDL: 1.1 и 2.0. Они отличаются синтаксисом и возможностями, и это важно учитывать при интеграции с 1С.
| Характеристика | WSDL 1.1 | WSDL 2.0 |
|---|---|---|
| Поддержка в 1С 8.3 | Полная | Частичная (требует доработок) |
| Синтаксис | Проще, шире распространён | Сложнее, реже используется |
| Примеры сервисов | Сбербанк, ФНС, Контур.Диадок | Редко (обычно корпоративные решения) |
🔹 WSDL 1.1 — самый распространённый вариант, который поддерживается 1С"из коробки". Большинство банков и госуслуг предоставляют файлы именно в этом формате.
🔹 WSDL 2.0 — более современный стандарт, но в 1С с ним могут возникнуть проблемы:
- 🚫 Не все конструкции WSDL 2.0 корректно обрабатываются платформой.
- 🚫 Может потребоваться ручная правка файла или использование промежуточного слоя (например, на C#).
⚠️ Внимание: если поставщик сервиса предоставляет только WSDL 2.0, уточните у него, есть ли альтернативная версия файла в формате 1.1. Если нет — будьте готовы к доработкам или использованию внешних адаптеров.
FAQ: ответы на частые вопросы о WSDL в 1С
Можно ли использовать WSDL для работы с REST API?
Нет, WSDL предназначен только для SOAP-сервисов. Для REST в 1С используется HTTPЗапрос с ручной настройкой заголовков и обработкой JSON/XML. Однако некоторые сервисы (например, Ozon) предоставляют OpenAPI-спецификации (в формате YAML/JSON), которые можно конвертировать в код 1С с помощью внешних инструментов.
Как обновлять WSDL, если сервис изменил API?
Если поставщик обновил WSDL, скачайте новый файл и:
- Удалите старое HTTP-соединение в 1С (
Конфигуратор → HTTP-Сервисы). - Импортируйте новый WSDL через
Файл → Открыть. - Обновите код вызова методов, если изменились параметры.
🔹 Важно: перед обновлением сделайте резервную копию конфигурации!
Почему 1С не видит методы из WSDL после импорта?
Возможные причины:
- 🔸 Файл повреждён или неполный (проверьте его в блокноте).
- 🔸 В WSDL используются внешние схемы (XSD), которые не загрузились.
- 🔸 Версия 1С не поддерживает конструкции из WSDL (актуально для WSDL 2.0).
Решение: попробуйте открыть WSDL в SoapUI — если там методы отображаются, проблема в 1С.
Нужно ли знать XML, чтобы работать с WSDL в 1С?
Базовые знания XML помогут разобраться в структуре WSDL, но они не обязательны. 1С автоматически генерирует объекты для работы с сервисом, и в большинстве случаев достаточно:
- 🔹 Знать, какие методы доступны (описание обычно есть в документации).
- 🔹 Уметь передавать параметры и обрабатывать ответы.
Для сложных случаев (например, правка WSDL) может потребоваться помощь разработчика.
Можно ли тестировать WSDL без подключения к реальному сервису?
Да, для тестирования можно: