Перейти к основному содержимому

Тип встроенного языка, порождаемый элементом проекта вида «SoapСервис»

После того как вы добавили в проект SOAP-сервис и дали ему имя, «1С:Шина» создает один тип встроенного языка. Имя этого типа совпадает с именем вашего SOAP-сервиса.

Например, для SOAP-сервиса с именем СервисМагазина будет создан тип СервисМагазина. В общем случае имя этого типа выглядит следующим образом: <Имя-soap-сервиса>.

Тип <Имя-soap-сервиса>

Тип <Имя-soap-сервиса> доступен на сервере.

Он позволяет пересчитать разрешения доступа — ПересчитатьРазрешенияДоступа() (подробнее).

Этот тип не имеет конструктора и имеет единственный экземпляр, обращение к которому выполняется по имени типа:

// Пересчитать разрешения доступа для SOAP-сервиса «СервисМагазина»
СервисМагазина.ПересчитатьРазрешенияДоступа()

Модуль SOAP-сервиса

В проекте модуль, расширяющий тип <Имя-soap-сервиса>, называется модулем SOAP-сервиса. Он исполняется на сервере.

В этом модуле вы можете разместить:

  1. Структуры, для описания:
    • передаваемых в сервис параметров и результата запроса. Однако это не обязательно, можно также использовать встроенные типы — Число, Строка и т. д. Данные типы будут автоматически сопоставлены с соответствующими XML-типами.
    • используемых в сервисе исключений. Данные типы будут сопоставлены с SOAP-ошибками.
  2. Методы для описания операций, выполняемых в результате вызова обработчиков.

Пример модуля SOAP-сервиса:

// Описание пользовательской ошибки
@ВПроекте
исключение MyCustomException
обз пер ReasonDescription: Строка
обз пер AppErrorCode: Число
;

// Структура, описывающая параметры метода обработчика
структура Item
обз пер Sku: Число
обз пер Name: Строка
обз пер Price: Число
;

//Обработчик операции сервиса
метод ДобавитьВКорзину(Item: Item, Count: Число)
// Метод, написанный разработчиком
;

Ограничения на код модуля

  1. Запрещено использовать кириллицу в именах обработчиков.

  2. В структурах встроенного языка, используемых в сообщениях (параметрах и возвращаемых значениях обработчиков на встроенном языке SOAP-сервиса), в заголовках, а также в исключениях встроенного языка, используемых как SOAP ошибки:

    • Не должно быть циклических ссылок.
    • Допустим только составной тип, состоящий из одного из поддерживаемых типов + Неопределено. В этом случае в XML-элементе будет использовано ограничение minOccurs=0. Другие составные типы не разрешены.
    • Допустимы только следующие типы данных:
    Тип встроенного языкаXML типПримечание
    Строкаstring
    Числоdecimal
    Булевоboolean
    ДатаВремяdateTime
    Датаdate
    Времяtime
    МесяцgMonth
    Длительностьduration
    Байтыbase64Binary
    СтруктураcomplexType
    НеопределеноminOccurs=0
    ЧитаемаяКоллекция<Тип>, где Тип — значения поддерживаемого типаminOccurs=unbounded; не поддерживается коллекция коллекций

Также в модуле SOAP-сервиса можно обработать событие ВычислитьРазрешенияДоступа (подробнее).