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

После того как вы добавили в проект SOAP-сервис и дали ему имя, создает один тип встроенного языка. Имя этого типа совпадает с именем вашего 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-сервиса можно обработать событие ВычислитьРазрешенияДоступа (подробнее).