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

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

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

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

Тип <ИмяSoapСервиса>

Тип {ИмяSoapСервиса} доступен на сервере.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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