Если вы работаете с 1С:Предприятие и сталкиваетесь с задачами интеграции — например, обменом данными между базами, подключением внешних сервисов или автоматизацией бизнес-процессов — то рано или поздно услышите о WS-ссылках. Этот термин часто вызывает вопросы даже у опытных пользователей: что скрывается за аббревиатурой, как эти ссылки формируются и почему без них не обойтись при работе с веб-сервисами.
На практике WS-ссылка (от англ. Web Service) — это адрес, по которому доступен веб-сервис 1С, позволяющий внешним системам взаимодействовать с вашей базой. Например, отправлять заказы из интернет-магазина в 1С:УТ, синхронизировать справочники с CRM или получать актуальные остатки товаров для сайта. Без правильно настроенных WS-ссылок такие сценарии просто невозможны.
В этой статье мы разберём:
- 🔹 Что такое WS-ссылки и как они связаны с веб-сервисами в 1С
- 🔹 Как формируются эти ссылки в разных конфигурациях (файловый/клиент-серверный вариант)
- 🔹 Типичные ошибки при настройке и способы их устранения
- 🔹 Примеры использования в реальных бизнес-задачах
Особое внимание уделим разнице между WS-ссылками для публикации на веб-сервере и локальными ссылками для тестирования — это критично для безопасности и стабильности работы интеграций.
1. WS-ссылки в 1С: определение и принципы работы
WS-ссылка — это URL-адрес, по которому внешняя система (например, сайт на PHP, мобильное приложение или другая база 1С) может обратиться к веб-сервису, опубликованному в вашей конфигурации. Сам веб-сервис представляет собой набор методов (функций), которые выполняют конкретные действия: добавление документа, чтение справочника, проверка остатков и т.д.
Технически WS-ссылка состоит из нескольких частей:
- 🌐 Протокол (
httpилиhttps) — определяет способ передачи данных. - 🖥️ Адрес сервера — домен или IP, где размещён веб-сервис (например,
mycompany.ruили192.168.1.100). - 📂 Путь к веб-сервису — включает имя базы и название опубликованного сервиса (например,
/hs/Exchange/ws/Exchange.1cws). - 🔑 Параметры аутентификации (если требуются) — логин/пароль или токен для доступа.
Пример типичной WS-ссылки для 1С:Управление торговлей:
https://server.mycompany.ru/ut11/ws/Exchange.1cws?wsdl
Здесь:
server.mycompany.ru— адрес веб-сервера,/ut11/— alias (псевдоним) базы 1С:УТ 11,/ws/Exchange.1cws— путь к веб-сервису обмена,?wsdl— параметр для получения описания сервиса в формате WSDL.
⚠️ Внимание: Если ваш веб-сервис опубликован на локальном сервере (например, для тестирования), WS-ссылка будет содержать IP вида192.168.x.xилиlocalhost. Такие ссылки недоступны извне — для внешних интеграций требуется публичный IP или домен.
2. Как формируются WS-ссылки в разных режимах работы 1С
Способ формирования WS-ссылки зависит от того, в каком режиме работает ваша база 1С:Предприятие — файловом или клиент-серверном. Рассмотрим оба варианта.
2.1. Файловый вариант
В файловом режиме база хранится в виде файлов (.1CD) на локальном или сетевом диске. Для публикации веб-сервиса здесь используется встроенный веб-сервер 1С или внешний (например, Apache, IIS).
Пример WS-ссылки для файловой базы:
http://localhost:8080/base_name/ws/ServiceName.1cws
Где:
8080— порт по умолчанию для встроенного веб-сервера 1С,base_name— имя каталога с базой,ServiceName— имя опубликованного веб-сервиса.
Чтобы изменить порт встроенного веб-сервера, откройте файл conf.cfg в каталоге 1С и найдите параметр port. После изменения перезапустите службу 1C:Enterprise 8.3 Server Agent.
2.2. Клиент-серверный вариант
В клиент-серверном режиме база размещается на сервере 1С:Предприятие, а веб-сервисы публикуются через веб-сервер (например, IIS или Nginx). WS-ссылка в этом случае включает:
- 📌 Домен или IP сервера (например,
erpserver.mycompany.ru), - 📌 Alias базы (задаётся при публикации в консоли администрирования сервера 1С),
- 📌 Имя веб-сервиса (указывается в конфигураторе при создании публикации).
Пример для клиент-серверной базы:
https://erpserver.mycompany.ru/ut11_hs/ws/Exchange.1cws
Здесь /ut11_hs/ — alias базы, а /ws/Exchange.1cws — путь к сервису.
| Режим работы 1С | Пример WS-ссылки | Особенности |
|---|---|---|
| Файловый (встроенный веб-сервер) | http://localhost:8080/base/ws/Service.1cws |
Доступен только в локальной сети. Порт 8080 можно изменить. |
| Файловый (внешний веб-сервер) | http://mycompany.ru/1c_base/ws/Service.1cws |
Требует настройки виртуального хоста на веб-сервере. |
| Клиент-серверный (IIS) | https://erpserver.mycompany.ru/alias/ws/Service.1cws |
Поддерживает HTTPS. Alias настраивается в консоли администрирования. |
| Клиент-серверный (Apache/Nginx) | https://api.mycompany.ru/1c/ws/Service.1cws |
Требует модуля mod_proxy для проксирования запросов. |
⚠️ Внимание: При публикации веб-сервиса в клиент-серверном режиме убедитесь, что в настройках IIS или Apache разрешён доступ по протоколуHTTPилиHTTPS(последний предпочтительнее для безопасности). Также проверьте, что порт (например,80или443) не заблокирован фаерволом.
3. Где и как используются WS-ссылки: практические примеры
WS-ссылки применяются в самых разных сценариях интеграции. Рассмотрим наиболее распространённые случаи.
3.1. Обмен данными между базами 1С
Если у вас несколько баз (например, 1С:УТ для торговли и 1С:ЗУП для зарплаты), WS-ссылки позволяют автоматизировать передачу данных:
- 📦 Выгрузка заказов из 1С:УТ в 1С:Бухгалтерию для формирования счетов-фактур.
- 👥 Синхронизация справочника сотрудников между 1С:ЗУП и 1С:Документооборот.
- 📊 Передача остатков товаров из 1С:УТ в 1С:Розница для актуального отображения на кассах.
Пример настройки:
- В 1С:УТ публикуем веб-сервис
ExchangeOrdersс методомGetNewOrders(). - В 1С:Бухгалтерии создаём обработку, которая обращается по WS-ссылке к
ExchangeOrdersи загружает новые заказы. - Настраиваем расписание обмена (например, каждые 2 часа).
3.2. Интеграция с сайтом или интернет-магазином
WS-ссылки активно используются для связи 1С с CMS (например, Bitrix, WordPress + WooCommerce, самописные решения). Типичные задачи:
- 🛒 Загрузка каталога товаров из 1С:УТ на сайт (наименования, цены, фотографии).
- 📝 Приём заказов с сайта в 1С с автоматической регистрацией документов.
- 🔄 Обновление статусов заказов (например, "Оплачен", "Отгружен").
Пример WS-ссылки для интеграции с Bitrix:
https://erpserver.mycompany.ru/ut11/ws/CatalogExchange.1cws
Здесь CatalogExchange — сервис, который предоставляет методы GetProducts(), GetPrices() и т.д.
Как проверить работоспособность WS-ссылки?
Откройте ссылку с параметром ?wsdl в браузере (например, https://server/ws/Service.1cws?wsdl). Если сервис работает, вы увидите XML-описание методов. Если нет — проверьте:
- 🔌 Доступен ли сервер по указанному адресу (ping).
- 🔒 Разрешён ли порт в фаерволе.
- 📝 Правильно ли указан alias базы и имя сервиса.
3.3. Подключение внешних сервисов (банки, ЕГАИС, ФНС)
Многие государственные и коммерческие сервисы требуют обмена данными в автоматическом режиме. WS-ссылки здесь выступают как "мост" между 1С и внешней системой:
- 🏦 Банк-клиент: загрузка выписок, отправка платёжных поручений.
- 🍷 ЕГАИС: обмен счетами-фактурами и актами для алкогольной продукции.
- 📋 ФНС: отправка отчётности (например, через оператора ЭДО).
- 🚚 Транспортные компании: передача данных о грузах (СДЭК, Деловые линии).
Пример: для интеграции с Сбербанк Бизнес Онлайн в 1С:Бухгалтерии публикуется сервис BankExchange, а банк обращается к нему по WS-ссылке:
https://mycompany.ru/buh83/ws/BankExchange.1cws
4. Типичные ошибки при работе с WS-ссылками и их решения
Даже опытные администраторы 1С сталкиваются с проблемами при настройке WS-ссылок. Рассмотрим самые распространённые ошибки и способы их устранения.
4.1. Ошибка 404: сервис не найден
Если при обращении к WS-ссылке вы получаете ошибку 404 Not Found, проверьте:
- 🔍 Правильность URL: нет ли опечаток в имени сервиса или alias базы.
- 🖥️ Публикацию сервиса: опубликован ли он в конфигураторе (
Администрирование → Публикация на веб-сервере). - 🌐 Настройки веб-сервера: для IIS проверьте привязку сайта к порту, для Apache — конфигурацию
VirtualHost. - 🔌 Доступность порта: не блокирует ли фаервол порт
80/443(или8080для встроенного сервера).
Пример диагностики для IIS:
- Откройте
Диспетчер IIS. - Проверьте, что сайт с alias базы запущен.
- Убедитесь, что в
Обработчикидобавлен обработчик для*.1cws(указывает на1cv82.wsf).
4.2. Ошибка аутентификации (401 или 403)
Если сервис доступен, но возвращает ошибку доступа, проблема в настройках безопасности:
- 🔑 Проверьте логин/пароль: они должны совпадать с пользователем 1С, у которого есть права на вызов веб-сервиса.
- 🛡️ Настройки IIS/Apache: включена ли анонимная аутентификация или базовая (если используется логин/пароль).
- 📜 Права в 1С: у пользователя должна быть роль с правом на вызов веб-сервисов (например,
Полные праваили специальная роль).
Пример настройки аутентификации в IIS:
1. Откройте свойства сайта в Диспетчере IIS.
2. Перейдите в "Аутентификация".
3. Включите "Анонимная аутентификация" (если не нужна авторизация) или "Основная аутентификация" (для логина/пароля).
4. Отключите "Аутентификация Windows" (если не используется).
4.3. Ошибка "Сервис не отвечает" или таймаут
Если WS-ссылка доступна, но сервис не отвечает на запросы, причины могут быть следующими:
- ⚙️ Перегрузка сервера 1С: проверьте загрузку CPU и памяти на сервере.
- 🕒 Таймаут запроса: в настройках веб-сервиса или внешней системы может быть установлено слишком маленькое время ожидания.
- 🔄 Блокировка антивирусом/фаерволом: некоторые антивирусы (например, Kaspersky) могут блокировать обращения к
.1cws. - 📡 Проблемы с сетью: если сервер 1С и внешняя система находятся в разных сетях, проверьте маршрутизацию.
Пинг до сервера (команда ping server.mycompany.ru)|Проверка порта (telnet server.mycompany.ru 80)|Тест WSDL (https://server/ws/Service.1cws?wsdl)|Проверка логов IIS/Apache на ошибки|Тест вызова метода через Postman или SoapUI
-->
5. Безопасность WS-ссылок: как защитить данные
WS-ссылки открывают доступ к вашей базе извне, поэтому их настройка требует особого внимания к безопасности. Основные риски:
- 🕵️ Несанкционированный доступ к данным (утечка информации о заказах, клиентах, финансах).
- 💥 DDoS-атаки на веб-сервис, ведущие к падению производительности.
- 🔄 Подмена данных при передаче (например, изменение сумм в заказах).
Чтобы минимизировать риски, следуйте рекомендациям:
5.1. Используйте HTTPS
Всегда настраивайте SSL-сертификат для домена, на котором опубликован веб-сервис. Это защищает данные от перехвата. Пример WS-ссылки с HTTPS:
https://secure.mycompany.ru/ut11/ws/Exchange.1cws
Для настройки SSL в IIS:
- Получите сертификат (например, через Let’s Encrypt или коммерческий центр).
- Импортируйте его в
Диспетчер IIS → Серверные сертификаты. - Привяжите сертификат к сайту в настройках
Привязки.
5.2. Ограничьте доступ по IP
Если внешняя система, которая обращается к WS-ссылке, имеет статический IP, ограничьте доступ только для него. В IIS это делается через Ограничения по IP:
- Откройте свойства сайта в IIS.
- Перейдите в
Ограничения по IP и доменам. - Добавьте правило
Запретитьдля всех IP, кроме разрешённых.
5.3. Настройте аутентификацию
Избегайте анонимного доступа к веб-сервисам. Лучше использовать:
- 🔐 Базовую аутентификацию (логин/пароль передаются в заголовке
Authorization). - 🔑 Токены (например, JWT), если внешняя система поддерживает их.
- 🛡️ ОAuth 2.0 для сложных сценариев (например, интеграция с мобильным приложением).
Пример настройки базовой аутентификации в 1С:
- В конфигураторе откройте свойства веб-сервиса.
- Установите флаг
Требуется аутентификация. - Создайте пользователя в 1С с ролью, разрешающей вызов веб-сервисов.
⚠️ Внимание: Если вы используете базовую аутентификацию, всегда комбинируйте её с HTTPS. Без шифрования логин и пароль передаются открытым текстом и могут быть перехвачены!
6. Практические советы по работе с WS-ссылками
Чтобы упростить настройку и поддержку WS-ссылок, воспользуйтесь этими советами:
6.1. Тестируйте сервисы перед боем
Перед подключением внешней системы проверьте работоспособность WS-ссылки:
- 🔧 Используйте Postman или SoapUI для тестирования методов.
- 📡 Проверьте формат запросов и ответов (например,
XMLилиJSON). - 📝 Сверьтесь с документацией веб-сервиса (её можно сгенерировать в конфигураторе).
Пример тестового запроса в Postman:
- Укажите метод
POST. - Введите WS-ссылку (например,
https://server/ws/Service.1cws). - В заголовках добавьте
Content-Type: text/xmlиAuthorization: Basic ...(если нужна аутентификация). - В теле запроса укажите XML-сообщение (пример можно взять из WSDL).
6.2. Ведите журнал обращений
Настройте логирование запросов к веб-сервису. Это поможет:
- 📅 Отслеживать время и частоту обращений.
- 🔍 Диагностировать ошибки (например, неверные параметры в запросе).
- 🛡️ Выявлять подозрительную активность (многократные запросы с одного IP).
В IIS логи настраиваются так:
- Откройте свойства сайта.
- Перейдите в
Журналы. - Включите ведение журнала в формате
W3C. - Укажите путь для сохранения логов (например,
C:\inetpub\logs\1C).
6.3. Автоматизируйте обновление сертификатов
Если используете HTTPS, следите за сроком действия SSL-сертификата. Просроченный сертификат сделает WS-ссылку недоступной. Решения:
- 🔄 Настройте автоматическое продление через Let’s Encrypt (например, с помощью Certbot).
- 📅 Добавьте напоминание в календарь за месяц до истечения срока.
- 🛠️ Используйте скрипты для проверки срока действия сертификата (например, на PowerShell).
Регулярно обновляйте пароли пользователей, от имени которых работают веб-сервисы. Это снизит риск несанкционированного доступа при утечке учётных данных.
7. Частые вопросы о WS-ссылках в 1С
🔹 Как узнать WS-ссылку для своей базы 1С?
WS-ссылка формируется из:
- Адреса сервера (например,
https://mycompany.ru). - Alias базы (указывается при публикации на веб-сервере).
- Имени веб-сервиса (например,
/ws/Exchange.1cws).
Чтобы узнать точную ссылку:
- Откройте конфигуратор 1С.
- Перейдите в
Администрирование → Публикация на веб-сервере. - Посмотрите список опубликованных сервисов и их URL.
🔹 Можно ли изменить порт для WS-ссылок?
Да, порт можно изменить:
- Для встроенного веб-сервера 1С: отредактируйте файл
conf.cfgв каталоге 1С, найдите параметрportи укажите новый номер (например,port = 8081). После изменения перезапустите службу1C:Enterprise 8.3 Server Agent. - Для IIS/Apache: измените привязку сайта к другому порту в настройках веб-сервера.
Пример для IIS:
- Откройте
Диспетчер IIS. - Выберите сайт, нажмите
Привязки. - Добавьте новую привязку с нужным портом (например,
8443для HTTPS).
🔹 Почему WS-ссылка работает в локальной сети, но не доступна из интернета?
Вероятные причины:
- 🌍 Сервер находится за NAT (нужно настроить проброс портов на роутере).
- 🔌 Порт заблокирован фаерволом (проверьте настройки Windows Firewall или корпоративного фаервола).
- 📡 У провайдера заблокирован входящий трафик на порт
80/443(нужно обратиться в поддержку хостинга). - 🖥️ Веб-сервер привязан только к локальному IP (
127.0.0.1или192.168.x.x).
Решения:
- Настройте проброс портов на роутере (например, порт
443на IP сервера192.168.1.100). - В IIS проверьте, что сайт привязан к внешнему IP или
Все неназначенные. - Откройте порт в фаерволе (например, для
TCP 443).
🔹 Как защитить WS-ссылку от взлома?
Минимальный набор мер безопасности:
- 🔒 Используйте HTTPS (настройте SSL-сертификат).
- 🔑 Включите аутентификацию (базовую или по токенам).
- 🚫 Ограничьте доступ по IP (разрешите только IP внешних систем).
- 📡 Настройте логирование запросов для мониторинга активности.
- 🔄 Ре