Направление параметра операции.
Полное описание, параметры и ограничения
WSНаправлениеПараметра (WSParameterDirection)
WSНаправлениеПараметра (WSParameterDirection)
Доступен, начиная с версии 8.1.
Значения
Входной (In)
ВходнойВыходной (InOut)
Выходной (Out)
Описание:
Направление параметра операции.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/enterprise/current-config}. Имя типа XDTO: WSParameterDirection.
См. также:
WSПараметр, свойство НаправлениеПараметра
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Разобрать направление своего SOAP-параметра: Входной
Параметры получаются из конкретного собственного описания, затем отбираются по настоящему направлению.
Где и как запускать
Своя отдельная учебная база, серверный модуль собственной обработки. Основной код — тело команды. Описание сервиса читается локально; WSПрокси и вызов SOAP не используются.
Подготовка
Своя отдельная учебная база, серверный модуль собственной обработки. Основной код — тело команды. Описание сервиса читается локально; WSПрокси и вызов SOAP не используются.
Поместите дополнительную функцию в тот же серверный модуль на верхнем уровне. Она создаёт один собственный временный WSDL с уникальным именем, читает его и удаляет только этот файл. Существующие файлы и HTML не копируются.
Собственный RPC/literal WSDL: bookCode только во входе, quantity только в выходе, note в обоих сообщениях; parameterOrder явно перечисляет все три. Внешних import/include нет. Адрес 127.0.0.1:9 — только строка описания, соединение с ним не устанавливается.
Определения = СвоиОпределенияНаправлений();
Сервис = Определения.Сервисы.Получить("urn:guide:direction", "BookService");
Операция = Сервис.ТочкиПодключения.Получить("BookPort").Интерфейс.Операции.Получить("DescribeBook");
Подходящих = 0;
Для Каждого Параметр Из Операция.Параметры Цикл
Если Параметр.НаправлениеПараметра = WSНаправлениеПараметра.Входной Тогда
Подходящих = Подходящих + 1;
Сообщить("Параметр локального WSDL: " + Параметр.Имя);
КонецЕсли;
КонецЦикла;
Сообщить("Параметров выбранного направления: " + Строка(Подходящих));Тот же серверный модуль: полный свой RPC/literal WSDL и локальный импорт
Функция СвоиОпределенияНаправлений()
ТекстWSDL = "<definitions xmlns=""http://schemas.xmlsoap.org/wsdl/"" xmlns:tns=""urn:guide:direction"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/wsdl/soap/"" targetNamespace=""urn:guide:direction"">
|<message name=""BookIn""><part name=""bookCode"" type=""xs:string""/><part name=""note"" type=""xs:string""/></message>
|<message name=""BookOut""><part name=""quantity"" type=""xs:int""/><part name=""note"" type=""xs:string""/></message>
|<portType name=""BookPortType""><operation name=""DescribeBook"" parameterOrder=""bookCode quantity note""><input message=""tns:BookIn""/><output message=""tns:BookOut""/></operation></portType>
|<binding name=""BookBinding"" type=""tns:BookPortType""><soap:binding style=""rpc"" transport=""http://schemas.xmlsoap.org/soap/http""/><operation name=""DescribeBook""><soap:operation soapAction=""urn:guide:direction/DescribeBook""/><input><soap:body use=""literal"" namespace=""urn:guide:direction""/></input><output><soap:body use=""literal"" namespace=""urn:guide:direction""/></output></operation></binding>
|<service name=""BookService""><port name=""BookPort"" binding=""tns:BookBinding""><soap:address location=""http://127.0.0.1:9/guide-directions""/></port></service>
|</definitions>";
ИмяWSDL = ПолучитьИмяВременногоФайла("wsdl");
ДокументТекста = Новый ТекстовыйДокумент;
ДокументТекста.УстановитьТекст(ТекстWSDL);
Попытка
ДокументТекста.Записать(ИмяWSDL, КодировкаТекста.UTF8);
Определения = Новый WSОпределения(ИмяWSDL);
Исключение
УдалитьФайлы(ИмяWSDL);
ВызватьИсключение;
КонецПопытки;
УдалитьФайлы(ИмяWSDL);
Возврат Определения;
КонецФункцииРазбор по шагам
Подготовьте свой источник описания.
Получите реальную коллекцию параметров операции.
Сравните выбранное направление и имена параметров.
Как проверить результат
WSDL задаёт Входной bookCode, Выходной quantity и ВходнойВыходной note. Сравнение использует фактическое readonly-направление импортированных параметров; они не создаются фиктивным конструктором.
Это пример описания RPC-параметров. В document/literal wrapped WSDL вход/выход может представляться иначе; нельзя по наличию ответа автоматически объявить все его поля выходными WSПараметр.
BSL, WSDL-конструктор и сетевые операции при сборке HTML не выполнялись; runtime-проверка импорта остаётся отдельным ручным опытом.
Ожидаемый результат
У направления есть настоящий владелец — параметр конкретной операции.
На что обратить внимание
Не присваивайте readonly НаправлениеПараметра / НаправлениеПередачи из кода.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.