Прочитать политику синхронных вызовов компонентов

Учебные задачи

В XML КА2 Progress установлен Use. Читаем настройку, но не устанавливаем компонент, не регистрируем COM и не выполняем блокирующий вызов.

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

Полный серверный модуль соответствующей учебной копии КА2 или УТ 10.3. Никаких операций перепроведения или изменения настроек.

Подготовка

  1. Последовательность ПартионныйУчет взята из C:\claude\UT10_3\XML_UT_10_3\Sequences\ПартионныйУчет.xml. Используйте отдельную учебную копию именно этой УТ 10.3 на установленной платформе 8.5.1.1343, не рабочую базу.

  2. Для первых двух уроков о режимах конфигурации используйте отдельную копию КА2 Progress. Для последующих пяти — копию указанной УТ 10.3. Не смешивайте имена и настройки разных конфигураций.

  3. В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока и вызовите ВыполнитьПример() из своей серверной команды. В обычной конфигурации можно вызвать серверную процедуру из собственной учебной обработки.

  4. Только чтение схемы и собственные значения в памяти: нет проведения, восстановления последовательности, изменения границ, назначения номеров или переключения совместимости.

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

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

  1. Используем точное современное имя свойства с РасширенийПлатформы. Оно не заменяется похожим старым свойством без слова Платформы.

  2. Сравнение с Использовать основано на реальном SynchronousPlatformExtensionAndAddInCallUseMode=Use в Configuration.xml КА2 Progress.

  3. Все три системных значения рассматриваются отдельно. Политика проверки не является запуском установки или подключения расширения платформы.

  4. Для конкретного сценария затем отдельно выбирают API, доступное на нужном клиенте, и проверяют наличие компонента. Ни одной такой внешней операции здесь нет.

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

  1. В исходной копии КА2 первая проверка — Истина и выполняется ветка Использовать.

  2. Не открывались установщики, не менялась регистрация COM, не добавлялись расширения платформы.

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

Настройка прочитана без неверного обещания, что компонент уже установлен и готов к работе.

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

  1. Разрешённая политика не подтверждает совместимость DLL, разрядность или права установки.

  2. Не переключайте настройку рабочей конфигурации только ради устранения предупреждения.

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

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

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

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

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