ОбъектМетаданных: ПланВидовХарактеристик.Команды

Свойства · Commands

Тип: КоллекцияОбъектовМетаданных. Коллекция объектов метаданных типа ОбъектМетаданных: Команда.

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

ОбъектМетаданных: ПланВидовХарактеристик.Команды (MetadataObject: ChartOfCharacteristicTypes.Commands)

ОбъектМетаданных: ПланВидовХарактеристик (MetadataObject: ChartOfCharacteristicTypes)

Команды (Commands)

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

Использование:
Только чтение.
Описание:
Тип: КоллекцияОбъектовМетаданных.
Коллекция объектов метаданных типа ОбъектМетаданных: Команда.
Доступность:

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

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

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

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

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

Найти стандартный ТипЗначения и проверить состав собственной схемы

СтандартныеРеквизиты — не обычная коллекция с Найти. Перебираем описания и отдельно проверяем пустые пользовательские коллекции.

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

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

Подготовка

  1. Создайте НОВУЮ пустую файловую базу и назовите корень конфигурации Учебная85. Не добавляйте учебные объекты в УТ/КА2/УНФ/БП и не подключайте расширения.

  2. Конфигуратор → Планы видов характеристик → Добавить: имя УчебныеСвойства, синоним Учебные свойства. Укажите длину кода 10, длину наименования 100, автонумерацию и контроль уникальности включите.

  3. Включите иерархию плана. В свойстве Тип выберите только Число (12 цифр, 2 дробных, неотрицательное) и Строка (30 символов, переменная длина). Дополнительные значения характеристик не назначайте.

  4. Реквизиты, табличные части, предопределённые элементы, формы, команды, макеты, характеристики и дополнительные индексы не создавайте. Модуль объекта и модуль менеджера оставьте пустыми; историю данных выключите.

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

  6. Код этого блока не вызывает Записать, не устанавливает блокировки и не меняет настройки метаданных. Учебные виды характеристик существуют только в памяти.

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

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

  1. Среди описаний стандартных реквизитов ищем Код, Наименование и ТипЗначения перебором по Имя.

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

  3. Пустые команды, макеты, индексы и предопределённые имена соответствуют собственному минимальному плану.

  4. МодульОбъекта, МодульМенеджера, Справка и Предопределенные по контракту этих свойств возвращают Неопределено. Это не API чтения исходного текста/списка; для имён предопределённых есть отдельный метод.

  5. Поля и режим блокировки только читаем. Ни одного блокирования объектов или изменения режима не выполняется.

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

  1. Пятнадцать логических проверок дают Истина.

  2. Три обязательных стандартных поля найдены, пользовательские коллекции по подготовке пустые.

  3. Последние два сообщения показывают фактические поля/режим блокировки, а не результат установления блокировки.

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

Проверен минимальный состав метаданных учебного ПВХ и границы доступности исходного текста.

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

  1. У ОписанияСтандартныхРеквизитов нет Найти; используйте перебор описаний.

  2. Неопределено у МодульОбъекта не доказывает отсутствие кода: содержимое модуля читают через Конфигуратор/выгрузку, не через это свойство.

  3. ПолучитьИменаПредопределенных возвращает имена схемы, не пользовательские записи плана.

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

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

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

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

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