Публикация веб-сервисов на платформе 1С 8.2 часто вызывает сложности у разработчиков, переходящих с версии 8.1. Основные трудности связаны с изменением архитектуры публикации и ужесточением политики безопасности при доступе к информационной базе. Давайте разберем по шагам, как правильно настроить веб-сервис и избежать распространенных ошибок.
Важно помнить, что начиная с версии 8.2, компания 1С перешла на использование файлов формата .vrd (XML-файлы описания публикации) вместо устаревших .1cws. Хотя файлы .1cws технически могут работать в некоторых сценариях, их использование больше не поддерживается и не гарантирует стабильность. Мы рекомендуем использовать стандартный механизм «Публикация на веб-сервере» из конфигуратора 1С или утилиту webinst, которые корректно создают .vrd-файлы.
Одной из главных проблем является запрос имени пользователя и пароля при обращении к WSDL-описанию сервиса. В старых версиях (8.1) можно было «зашить» учетные данные прямо в конфигурационный файл. В версии 8.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
));
Если при попытке публикации конфигуратор выдает ошибку, проанализируем следующие причины:
mod_1cws. Необходимо разворачивать два отдельных экземпляра Apache на разных портах, каждый из которых будет подключен к своей версии wsap22.dll.Если после публикации при попытке открытия базы через браузер вы видите пустое окно, это означает, что конфигурация написана на «обычных» формах. Веб-клиент 1С — это современный интерпретатор, который умеет работать только с управляемыми формами. Чтобы опубликовать базу для работы через браузер, необходимо перевести конфигурацию на управляемые формы (например, переход на редакцию 3.0 для 1С:Бухгалтерии).
Мы проанализировали основные этапы настройки веб-сервисов. Помните, что передача учетных данных через код прокси-объекта — это современный стандарт безопасности, который позволяет избежать проблем с «анонимным» доступом и обеспечивает надежную интеграцию ваших систем с платформой 1С:Предприятие.