Обработка ошибок SOAP-сервиса

Если в результате выполнения операции в обработчике SOAP-сервиса будет выброшено исключение, то будет возвращена SOAP-ошибка. Вы можете поймать и обработать эту ошибку в клиенте SOAP-сервиса, например, получить детали ошибки.

Предположим, в SOAP-сервисе определена ошибка ОшибкаОстатковНаСкладе, с атрибутами ДобавленоВКорзину и ОстатокНаСкладе. Данная ошибка выбрасывается, когда покупатель пытается добавить в корзину большее количество товара, чем есть сейчас в наличии. В проекте создан клиент SOAP-сервиса с названием КлиентСервисаМагазина. Тогда получить доступ к типу ошибки, определенной в SOAP-сервисе, из встроенного языка можно следующим образом:
КлиентСервисаМагазина.ОшибкаОстатковНаСкладе
Чтобы получить доступ к деталям ошибки, следует обратиться к свойству Детали, а затем к каждому свойству ошибки по отдельности:
знч ДеталиОшибки = КлиентСервисаМагазина.ОшибкаОстатковНаСкладе.Детали

знч Добавлено = ДеталиОшибки.ДобавленоВКорзину
знч Остаток = ДеталиОшибки.ОстатокНаСкладе

Код обработки ошибки в таком случае может выглядеть следующим образом:

знч Клиент = новый КлиентСервисаМагазина()
знч Товар = новый КлиентСервисаМагазина.Товар(Наименование="МойТовар")

попытка 
    знч ОтветСервиса  = Клиент.addToCart(Товар=Товар, Количество=11)
    знч Корзина = ОтветСервиса.Результат
    // Перевести пользователя в корзину для дальнейшей оплаты
поймать Исключение: КлиентСервисаМагазина.ОшибкаОстатковНаСкладе
    знч Добавлено = Исключение.Детали.ДобавленоВКорзину
    знч Остаток = Исключение.Детали.ОстатокНаСкладе
    // Вывести пользователю информацию о деталях ошибки 
    ;