Чтение заголовков ответа SOAP-сервиса

SOAP-заголовки могут использоваться для передачи дополнительной информации, непосредственно не связанной с задачей, решаемой операцией сервиса. В частности, это может быть информация, используемая для диагностики работы сервиса и клиента. Например, SOAP-сервис передает клиенту длительность обработки запроса в атрибуте ДлительностьОбработкиЗапроса SOAP-заголовка Диагностика. Для чтения заголовка в модуль элемента проекта клиента SOAP-сервиса следует добавить обработчик ОбработатьЗаголовкиSoap<ИмяМетодаСервиса>:

@Обработчик
метод ОбработатьЗаголовкиSoapДобавитьВКаталог(Заголовок: ЧтениеXml?): Объект?
    если Заголовок == Неопределено
        возврат Неопределено
    ;

    пока Заголовок.Следующий()
        если Заголовок.ВидУзла != ВидУзлаXml.НачалоЭлемента
            продолжить
        ;

        если Заголовок.ЛокальноеИмя == "Диагностика"
            попытка
                знч ДлительностьМсек = Заголовок.ЗначениеАтрибутаКакЧисло("ДлительностьОбработкиЗапроса")
                возврат Длительность.ИзМиллисекунд(ДлительностьМсек)
            поймать Искл: Исключение
            ;
        ;
    ;
    возврат Неопределено
;

Теперь прочитанные из заголовка данные можно получить из свойства ОтветSoap.Заголовки — в нем будет то значение, которое вернет обработчик ОбработатьЗаголовкиSoapДобавитьВКаталог:

знч КлиентСервиса = новый КлиентСервисаМагазина()
знч НовыйТовар = новый КлиентСервисаМагазина.Товар(Количество, Наименование)
знч ОтветСервиса = КлиентСервиса.ДобавитьВКаталог(НовыйТовар)

знч ДлительностьОбработки = ОтветСервиса.Заголовки