Проверить тип и кратность параметра общей команды

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

Для АрхивСообщенийОбменов читаем допустимые типы ссылок и режим параметра до изучения обработчика. Команду не выполняем.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

  4. В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.

  5. Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.

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

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

  1. ТипПараметраКоманды — ОписаниеТипов, а не текущая ссылка выбранного узла.

  2. Типы() раскрывает список допустимых типов; состав зависит от релиза.

  3. РежимИспользованияПараметра определяет одиночную или множественную передачу.

  4. Пример не выбирает узел обмена и не вызывает обработчик.

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

  1. В предоставленном XML перечислены три типа ссылок планов обмена и одиночный режим. Сверьте свой релиз.

  2. Число выведенных типов совпадает со счётчиком; это не число узлов обмена в базе.

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

Составлен контракт параметра до переноса команды в собственную форму.

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

  1. Допустимый тип не доказывает существование или права на конкретный узел.

  2. Массив значений при множественном режиме нельзя обрабатывать как одну ссылку.

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

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

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

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

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