ОбъектМетаданных: HTTPСервис

Типы · MetadataObject: HTTPService

Используется для обращения к метаданным объекта конфигурации - HTTP-сервис.

Полное описание, параметры и ограничения

ОбъектМетаданных: HTTPСервис (MetadataObject: HTTPService)

ОбъектМетаданных: HTTPСервис (MetadataObject: HTTPService)

Доступен, начиная с версии 8.3.5.

Свойства:
Имя (Name)
Комментарий (Comment)
ОбъектРасширяемойКонфигурации (ExtendedConfigurationObject)
ПринадлежностьОбъекта (ObjectBelonging)
Синоним (Synonym)
ВремяЖизниСеанса (SessionMaxAge)
КорневойURL (RootURL)
Модуль (Module)
ПовторноеИспользованиеСеансов (ReuseSessions)
ШаблоныURL (URLTemplates)

Методы:
ЕстьИзмененияРасширениямиКонфигурации (ChangedByConfigurationExtensions)
ПолноеИмя (FullName)
Представление (Presentation)
РасширениеКонфигурации (ConfigurationExtension)
Родитель (Parent)

Описание:

Используется для обращения к метаданным объекта конфигурации - HTTP-сервис.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.3.5.

Методическая информация

Практические примеры

Найти обработчики GET и POST одного пути

Одинаковый URL имеет два разных метода и две разные функции сервиса. Имя метода метаданных и тип HTTPМетод проверяются отдельно.

Где и как запускать

Полный серверный модуль учебной копии КА2 Progress 2.5.20.75; без HTTP, публикации и печати.

Подготовка

  1. Изолированная учебная копия КА2 Progress 2.5.20.75 из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, платформа 8.5.1.1343. Создайте серверный общий модуль УчебныеМаршрутыИМакеты.

  2. Вставьте полный модуль одного урока и вызовите УчебныеМаршрутыИМакеты.ВыполнитьПример() своей серверной учебной командой.

  3. Источники: HTTPServices\ПередачаДанных.xml и ПередачаДанных\Ext\Module.bsl; Documents\РеализацияТоваровУслуг\Templates\ПФ_MXL_РеализацияТоваров.xml.

  4. Метаданные только читаются. HTTP-запросы, публикация сервиса, загрузка/удаление файлов хранилища и печать документов не выполняются.

  5. Формируемый путь с guide-owned-storage — учебная строка, не действующий адрес публикации. GET/POST обработчики могут выполнять прикладную работу и здесь не вызываются.

  6. Макет печати получается в память без создания документа реализации и без заполнения его данными. Чтение размера макета не доказывает корректность настоящей печатной формы.

Процедура ВыполнитьПример() Экспорт
    Сервис = Метаданные.HTTPСервисы.Найти("ПередачаДанных");
    Если Сервис = Неопределено Тогда
        ВызватьИсключение "Нет подтверждённого HTTP-сервиса ПередачаДанных";
    КонецЕсли;
    Шаблон = Сервис.ШаблоныURL.Найти("ХранилищеИИдентификатор");
    Если Шаблон = Неопределено Тогда
        ВызватьИсключение "Нет подтверждённого шаблона ХранилищеИИдентификатор";
    КонецЕсли;
    GETМетод = Шаблон.Методы.Найти("GET");
    POSTМетод = Шаблон.Методы.Найти("POST");
    Если GETМетод = Неопределено ИЛИ POSTМетод = Неопределено Тогда
        ВызватьИсключение "Нет подтверждённых GET/POST методов";
    КонецЕсли;
    Сообщить(GETМетод.HTTPМетод = Метаданные.СвойстваОбъектов.HTTPМетод.GET);
    Сообщить(POSTМетод.HTTPМетод = Метаданные.СвойстваОбъектов.HTTPМетод.POST);
    Сообщить(GETМетод.Обработчик = "ХранилищеИИдентификаторGETЗапрос");
    Сообщить(POSTМетод.Обработчик = "ХранилищеИИдентификаторPOSTЗапрос");
    Сообщить(Сервис.Модуль = Неопределено);
    Сообщить("Посмотрите исходный модуль HTTPServices/ПередачаДанных/Ext/Module.bsl. Обработчики здесь НЕ вызываются.");
    Сообщить(Шаблон.Синоним);
    Сообщить(Шаблон.Комментарий);
    Сообщить(Шаблон.ПолноеИмя());
    Сообщить(Шаблон.Представление());
    Сообщить(Шаблон.ПринадлежностьОбъекта);
    Сообщить(ТипЗнч(Шаблон.ОбъектРасширяемойКонфигурации));
    Сообщить(Шаблон.ЕстьИзмененияРасширениямиКонфигурации());
    Сообщить(ТипЗнч(Шаблон.РасширениеКонфигурации()));
    Сообщить(Шаблон.Родитель() = Сервис);

КонецПроцедуры

Разбор по шагам

  1. Внутри Шаблон.Методы найти GET и POST по именам.

  2. Сравнить их HTTPМетод с реальным перечислением, а Обработчик — с исходными строками.

  3. Открыть исходный Module.bsl вручную: обе функции принимают Запрос. Это входящий HTTPСервисЗапрос, не объект SQL Запрос.

  4. Не вызывать функции и не отправлять GET/POST. Урок заканчивается чтением метаданных маршрута.

Как проверить результат

  1. Шесть фиксированных проверок дают Истина, остальное диагностическое.

  2. В Module.bsl находятся ХранилищеИИдентификаторGETЗапрос(Запрос) и POSTЗапрос(Запрос). Экспорт по этому примеру не требуется и не добавляется.

Ожидаемый результат

Полный образец поиска точки обработки HTTP без исполнения прикладного кода.

На что обратить внимание

  1. Даже GET может иметь прикладные побочные эффекты: чтение метаданных не является разрешением его вызывать.

  2. В модуле HTTP-сервиса обработчик не обязательно объявлен Экспорт.

  3. Проверка имён не доказывает правильность авторизации или поведения обработчика.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Посмотреть маршруты сервиса, не обращаясь к нему

ПередачаДанных имеет корень dt и четыре шаблона. Свойство Модуль всегда Неопределено: оно не возвращает текст обработчиков.

Где и как запускать

Полный серверный модуль учебной копии КА2 Progress 2.5.20.75; без HTTP, публикации и печати.

Подготовка

  1. Изолированная учебная копия КА2 Progress 2.5.20.75 из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, платформа 8.5.1.1343. Создайте серверный общий модуль УчебныеМаршрутыИМакеты.

  2. Вставьте полный модуль одного урока и вызовите УчебныеМаршрутыИМакеты.ВыполнитьПример() своей серверной учебной командой.

  3. Источники: HTTPServices\ПередачаДанных.xml и ПередачаДанных\Ext\Module.bsl; Documents\РеализацияТоваровУслуг\Templates\ПФ_MXL_РеализацияТоваров.xml.

  4. Метаданные только читаются. HTTP-запросы, публикация сервиса, загрузка/удаление файлов хранилища и печать документов не выполняются.

  5. Формируемый путь с guide-owned-storage — учебная строка, не действующий адрес публикации. GET/POST обработчики могут выполнять прикладную работу и здесь не вызываются.

  6. Макет печати получается в память без создания документа реализации и без заполнения его данными. Чтение размера макета не доказывает корректность настоящей печатной формы.

Процедура ВыполнитьПример() Экспорт
    Сервис = Метаданные.HTTPСервисы.Найти("ПередачаДанных");
    Если Сервис = Неопределено Тогда
        ВызватьИсключение "Нет подтверждённого HTTP-сервиса ПередачаДанных";
    КонецЕсли;
    Сообщить(Сервис.Имя = "ПередачаДанных");
    Сообщить(Сервис.КорневойURL = "dt");
    Сообщить(Сервис.ПовторноеИспользованиеСеансов = Метаданные.СвойстваОбъектов.РежимПовторногоИспользованияСеансов.Использовать);
    Сообщить(Сервис.ВремяЖизниСеанса = 20);
    Сообщить(Сервис.Модуль = Неопределено);
    Сообщить(Сервис.ШаблоныURL.Количество() = 4);
    Для Каждого Шаблон Из Сервис.ШаблоныURL Цикл
        Сообщить(Шаблон.Имя + " → " + Шаблон.Шаблон);
    КонецЦикла;
    Сообщить(Сервис.Синоним);
    Сообщить(Сервис.Комментарий);
    Сообщить(Сервис.ПолноеИмя());
    Сообщить(Сервис.Представление());
    Сообщить(Сервис.ПринадлежностьОбъекта);
    Сообщить(ТипЗнч(Сервис.ОбъектРасширяемойКонфигурации));
    Сообщить(Сервис.ЕстьИзмененияРасширениямиКонфигурации());
    Сообщить(ТипЗнч(Сервис.РасширениеКонфигурации()));
    Сообщить(Сервис.Родитель() = Метаданные);

КонецПроцедуры

Разбор по шагам

  1. Найти описание сервиса в Метаданные.HTTPСервисы.

  2. Проверить корень URL и настройки повторного использования сеансов по исходному XML.

  3. Прочитать Модуль и объяснить Неопределено как контракт, а не ошибку.

  4. Перечислить четыре шаблона и вывести сведения метаданных. Никакой URL не открывается.

Как проверить результат

  1. Семь фиксированных проверок дают Истина, сведения расширений диагностические.

  2. Выводятся четыре имени/шаблона. Это не подтверждение публикации, доступности или авторизации HTTP-сервиса.

Ожидаемый результат

Самостоятельная диагностика реального описания маршрутов без сетевого обмена.

На что обратить внимание

  1. ВремяЖизниСеанса — настройка HTTP-сервиса, не время жизни всего клиента 1С.

  2. КорневойURL dt не содержит адрес сервера и имя веб-публикации.

  3. У HTTP-сервиса нет способа исполнить модуль из свойства Модуль. Исходники смотрятся отдельно.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.