WSНаправлениеПараметра

Темы платформы · WSParameterDirection

Направление параметра операции.

Полное описание, параметры и ограничения

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 не используются.

Подготовка

  1. Своя отдельная учебная база, серверный модуль собственной обработки. Основной код — тело команды. Описание сервиса читается локально; WSПрокси и вызов SOAP не используются.

  2. Поместите дополнительную функцию в тот же серверный модуль на верхнем уровне. Она создаёт один собственный временный WSDL с уникальным именем, читает его и удаляет только этот файл. Существующие файлы и HTML не копируются.

  3. Собственный 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);
    Возврат Определения;
КонецФункции

Разбор по шагам

  1. Подготовьте свой источник описания.

  2. Получите реальную коллекцию параметров операции.

  3. Сравните выбранное направление и имена параметров.

Как проверить результат

  1. WSDL задаёт Входной bookCode, Выходной quantity и ВходнойВыходной note. Сравнение использует фактическое readonly-направление импортированных параметров; они не создаются фиктивным конструктором.

  2. Это пример описания RPC-параметров. В document/literal wrapped WSDL вход/выход может представляться иначе; нельзя по наличию ответа автоматически объявить все его поля выходными WSПараметр.

  3. BSL, WSDL-конструктор и сетевые операции при сборке HTML не выполнялись; runtime-проверка импорта остаётся отдельным ручным опытом.

Ожидаемый результат

У направления есть настоящий владелец — параметр конкретной операции.

На что обратить внимание

  1. Не присваивайте readonly НаправлениеПараметра / НаправлениеПередачи из кода.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.