Как опубликовать веб-сервис на платформе 1С:Предприятие 8.2 и решить проблему с авторизацией?

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

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

Отказ от использования файлов .1cws

Важно помнить, что начиная с версии 8.2, компания 1С перешла на использование файлов формата .vrd (XML-файлы описания публикации) вместо устаревших .1cws. Хотя файлы .1cws технически могут работать в некоторых сценариях, их использование больше не поддерживается и не гарантирует стабильность. Мы рекомендуем использовать стандартный механизм «Публикация на веб-сервере» из конфигуратора 1С или утилиту webinst, которые корректно создают .vrd-файлы.

Решение проблемы с авторизацией

Одной из главных проблем является запрос имени пользователя и пароля при обращении к WSDL-описанию сервиса. В старых версиях (8.1) можно было «зашить» учетные данные прямо в конфигурационный файл. В версии 8.2 этот метод заблокирован в целях безопасности. Рассмотрим, как правильно организовать доступ:

  1. Создание технического пользователя: Заведите в базе 1С отдельного пользователя с минимальными правами, необходимыми только для выполнения операций веб-сервиса.
  2. Программная передача данных: Передавайте учетные данные непосредственно в коде клиентского приложения, которое обращается к вашему сервису.

Посмотрим на пример реализации передачи учетных данных на стороне клиента:

Если вы пишете на встроенном языке 1С, используйте объект WSПрокси:


Попытка
    Прокси = WSСсылки.ИмяСсылки.СоздатьWSПрокси("ПространствоИмен", "Сервис", "ТочкаПодключения");
    Прокси.Пользователь = "ТехПользователь";
    Прокси.Пароль = "Пароль123";
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

Для разработки на C# используйте следующий подход:


var service = new НазваниеСервиса.НазваниеСервиса();
service.UseDefaultCredentials = false;
service.Credentials = new System.Net.NetworkCredential("ТехПользователь", "Пароль123");

Для разработки на PHP используйте параметры конструктора SoapClient:


$Клиент1С = new SoapClient("http://ваш-сервер/ws/service.1cws?wsdl", array(
    'login' => 'ТехПользователь', 
    'password' => 'Пароль123', 
    'soap_version' => SOAP_1_2
));

Почему возникает ошибка «Web серверы не обнаружены»?

Если при попытке публикации конфигуратор выдает ошибку, проанализируем следующие причины:

Особенности работы веб-клиента и форм

Если после публикации при попытке открытия базы через браузер вы видите пустое окно, это означает, что конфигурация написана на «обычных» формах. Веб-клиент 1С — это современный интерпретатор, который умеет работать только с управляемыми формами. Чтобы опубликовать базу для работы через браузер, необходимо перевести конфигурацию на управляемые формы (например, переход на редакцию 3.0 для 1С:Бухгалтерии).

Мы проанализировали основные этапы настройки веб-сервисов. Помните, что передача учетных данных через код прокси-объекта — это современный стандарт безопасности, который позволяет избежать проблем с «анонимным» доступом и обеспечивает надежную интеграцию ваших систем с платформой 1С:Предприятие.

← На главную