Тип встроенного языка, порождаемый элементом проекта вида «SoapСервис»
После того как вы добавили в проект SOAP-сервис и дали ему имя, создает один тип встроенного языка. Имя этого типа совпадает с именем вашего SOAP-сервиса.
Например, для SOAP-сервиса с именем СервисМагазина будет создан тип СервисМагазина. В общем случае имя этого типа выглядит следующим образом: <Имя-soap-сервиса>.
Тип <Имя-soap-сервиса>
Тип <Имя-soap-сервиса> доступен на сервере.
Он позволяет пересчитать разрешения доступа — ПересчитатьРазрешенияДоступа() (подробнее).
Этот тип не имеет конструктора и имеет единственный экземпляр, обращение к которому выполняется по имени типа:
// Пересчитать разрешения доступа для SOAP-сервиса «СервисМагазина»
СервисМагазина.ПересчитатьРазрешенияДоступа()
Модуль SOAP-сервиса
В проекте модуль, расширяющий тип <Имя-soap-сервиса>, называется модулем SOAP-сервиса. Он исполняется на сервере.
В этом модуле вы можете разместить:- Структуры, для описания:
- Передаваемых в сервис параметров и результата запроса. Однако это не обязательно, можно также использовать встроенные типы — Число, Строка и тд. Данные типы будут автоматически сопоставлены с соответствующими XML-типами.
- Используемых в сервисе исключений. Данные типы будут сопоставлены с SOAP-ошибками.
- Методы, для описания:
- Операций, выполняемых в результате вызова обработчиков;
// Описание пользовательской ошибки
@ВПроекте
исключение MyCustomException
обз пер ReasonDescription: Строка
обз пер AppErrorCode: Число
;
// Структура, описывающая параметры метода обработчика
структура Item
обз пер Sku: Число
обз пер Name: Строка
обз пер Price: Число
;
//Обработчик операции сервиса
метод ДобавитьВКорзину(Item: Item, Count: Число)
// Метод, написанный разработчиком
;
- Запрещено использовать кириллицу в именах обработчиков;
- В структурах встроенного языка, используемых в сообщениях (параметрах и
возвращаемых значениях обработчиков на встроенном языке SOAP-сервиса), в
заголовках, а также в исключениях встроенного языка, используемых как SOAP
ошибки:
- Не должно быть циклических ссылок;
- Допустим только составной тип, состоящий из одного из поддерживаемых
типов + Неопределено. В этом случае в XML-элементе
будет использовано ограничение
minOccurs=0
. Другие составные типы не разрешены; - Допустимы только следующие типы данных:
Тип встроенного языка XML тип Примечание Строка string
Число decimal
Булево boolean
ДатаВремя dateTime
Дата date
Время time
Месяц gMonth
Длительность duration
Байты base64Binary
Структура complexType
Неопределено minOccurs=0
ЧитаемаяКоллекция<Тип>, где Тип — значения поддерживаемого типа
minOccurs=unbounded
Не поддерживается коллекция коллекций
Также в модуле SOAP-сервиса можно обработать событие ВычислитьРазрешенияДоступа (подробнее).