В XML КА2 Progress сервис Exchange имеет корневой путь exchange, шаблон /version, метод GET и автоматическое повторное использование сеансов. Это описание, не проверка опубликованного API.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Варианты = Метаданные.СвойстваОбъектов;
Сервис = Метаданные.HTTPСервисы.Найти("Exchange");
Если Сервис = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует HTTPСервисы.Exchange";
КонецЕсли;
Шаблон = Сервис.ШаблоныURL.Найти("Версия");
Если Шаблон = Неопределено Тогда
ВызватьИсключение "В учебной копии нет шаблона Версия сервиса Exchange";
КонецЕсли;
Метод = Шаблон.Методы.Найти("get");
Если Метод = Неопределено Тогда
ВызватьИсключение "В шаблоне Версия нет метода get";
КонецЕсли;
Сообщить(Сервис.КорневойURL = "exchange");
Сообщить(Шаблон.Шаблон = "/version");
Сообщить(Метод.HTTPМетод = Варианты.HTTPМетод.GET);
Сообщить(Метод.Обработчик = "ПолучитьВерсию_GET");
Сообщить(Сервис.ПовторноеИспользованиеСеансов = Варианты.РежимПовторногоИспользованияСеансов.ИспользоватьАвтоматически);
Сообщить(Сервис.ВремяЖизниСеанса = 20);
Если Метод.HTTPМетод = Варианты.HTTPМетод.GET Тогда
Сообщить("Описание маршрута для будущей проверки: GET /exchange/version; адрес публикации и авторизацию уточняйте отдельно");
КонецЕсли;Разбор по шагам
Три поиска проверяются последовательно: сервис, шаблон, метод. HTTPМетод — отдельное перечислимое свойство, имя метода get не заменяет его.
Имя обработчика читается как строка и сверяется с XML. Обработчик не выполняется напрямую и HTTP-запрос не отправляется.
ПовторноеИспользованиеСеансов сравнивается со своим контейнером вариантов, ВремяЖизниСеанса с числом 20 из выгрузки.
Путь маршрута не является полной ссылкой: сервер публикации, префикс веб-базы и доступ этим кодом не проверены.
Как проверить результат
Шесть Истина в соответствующей учебной копии и пояснение маршрута.
Нет новых сеансов, сетевого запроса или вывода учётных данных.
Ожидаемый результат
Контракт маршрута прочитан до планирования внешнего теста.
На что обратить внимание
Совпадение метаданных не доказывает успешный ответ HTTP 200.
Автоматическое повторное использование не означает бессрочный сеанс или отсутствие авторизации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.