ОписаниеТипов.Типы

Методы · Types

Получает типы, используемые в объекте.

Синтаксис

Типы()

Примеры платформы

СписокТиповДокументов = Новый СписокЗначений;
Для Каждого ТипДокумента Из Элемент.ТипЗначения.Типы() Цикл
    ДокументСсылка = Новый(ТипДокумента);
    Имя = ДокументСсылка.Метаданные().Имя;
    Синоним = ДокументСсылка.Метаданные().Синоним;
    СписокТиповДокументов.Добавить(Имя, Синоним);
КонецЦикла;
Полное описание, параметры и ограничения

ОписаниеТипов.Типы (TypeDescription.Types)

ОписаниеТипов (TypeDescription)

Типы (Types)

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

Синтаксис:
Типы()
Возвращаемое значение:
Тип: Массив.
Массив значений типа Тип, состоящий из используемых типов.
Описание:

Получает типы, используемые в объекте.

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

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Пример:

// Заполнение списка типов документов по указанному элементу формы

// Элемент - элемент формы, имеющий составной тип

СписокТиповДокументов = Новый СписокЗначений;
Для Каждого ТипДокумента Из Элемент.ТипЗначения.Типы() Цикл
ДокументСсылка = Новый(ТипДокумента);
Имя = ДокументСсылка.Метаданные().Имя;
Синоним = ДокументСсылка.Метаданные().Синоним;
СписокТиповДокументов.Добавить(Имя, Синоним);
КонецЦикла;

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

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

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

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

Различить тип значений характеристики и ссылку на её описание

План УчебныеСвойства разрешает числовые и строковые значения. Его Тип — описание этих значений, а ПустаяСсылка — ссылка на вид характеристики, не значение свойства товара.

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

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

Подготовка

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

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

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

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

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

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

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

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

  1. Читаем описание собственной схемы. СодержитТип проверяет разрешённые типы значений, а Типы даёт их массив.

  2. Схема разрешает ровно Число и Строка. Дополнительный справочник значений не назначен; значение свойства пока нигде не хранится.

  3. Проверяем подготовленные настройки длины, иерархии и кодов. Эти чтения не нумеруют и не создают записи.

  4. ПустаяСсылка имеет тип ссылки на вид характеристики. Это не число, не строка, не объект метаданных и не сам план целиком.

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

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

  2. После них выводятся фактические режимы длины кода, серий кодов и показа групп; они не выдаются за значения товара.

  3. В базе не появляются виды свойств или дополнительные значения.

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

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

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

  1. План видов характеристик не хранит автоматически значение Вес у каждого товара. Для значений нужен отдельный объект/регистр с согласованной структурой.

  2. Не сравнивайте значение 12.5 с типом ПланВидовХарактеристикСсылка.УчебныеСвойства: это ссылка на вид свойства, а не его значение.

  3. ДополнительныеЗначенияХарактеристик — описание назначенного справочника в метаданных, не массив уже введённых значений.

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

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

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

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

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

Подготовка

  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С» и не аффилирован с ней.