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