Объект ОписаниеТипов

Печать (Ctrl+P)

Описание объекта ОписаниеТипов находится в разделе Общие объекты/описание типов значений в синтаксис – помощнике электронной документации платформы

Объект ОписаниеТипов представляет собой объект для управления допустимыми типами значений. В основном предназначен для присвоения в качестве значений соответствующим свойствам других объектов. Набор допустимых типов и квалификаторы примитивных типов задаются при создании объекта. Существуют 2 вида конструктора описания типов:

  • На основании объекта ОписаниеТипов :
ОписаниеТипов = Новый ОписаниеТипов(<ИсходноеОписаниеТипов>, <ДобавляемыеТипы>,  <ВычитаемыеТипы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>,  <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>) 

Данная конструкция создает описание типов на основании другого описания типов путем добавления одних и исключения других типов. Если новый квалификатор не указан, будут оставлены квалификаторы исходного описания типов. Подробнее см. в синтаксис- помощнике конфигуратора.

Пример

Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.Методы"));
Массив.Добавить(Тип("Число"));
Знак = ДопустимыйЗнак.Неотрицательный;
КвЧисла = Новый КвалификаторыЧисла(10, 2, Знак);
ДопустимыеТипы = Новый ОписаниеТипов(ДопустимыеТипы, Массив, , КвЧисла);
  • На основании типов и квалификаторов :
Новый ОписаниеТипов(<Типы>, <КвалификаторыЧисла>, 
<КвалификаторыСтроки>, <КвалификаторыДаты>, 
<КвалификаторыДвоичныхДанных>) 

Данный конструктор создает описание типов на основании заданных типов и квалификаторов для типов Число, Строка, Дата.

Пример, составной тип из строки и ссылки на справочник Номенклатуры.

МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникСсылка.Номенклатура"));
МассивТипов.Добавить(Тип("Строка"));
ПараметрыСтроки = Новый КвалификаторыСтроки(20);
ДопустимыеТипы = Новый ОписаниеТипов(МассивТипов, , ПараметрыСтроки);

Методы объекта описания типа

  • ПривестиЗначение
  • СодержитТип
  • Типы

Метод ПривестиЗначение

 ПривестиЗначение(<Значение>) 

Формирует значение на основании описания типа и переданного значения.

Например 1. В форме расположено табличное поле Товары, в котором для ячейки колонки Номенклатура определено событие НачалоВыбора, процедура обработчик которого приведена в следующем примере :

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

Пример 2. В форме есть таблица отбора с тремя колонками : ВидОтбора (строка) , ВидСравнения (перечисление) и ПодборЗначние ( составной тип значения) и нужно установить пустое значение по типу из списка доступных полей отбора компоновщика настройки:

ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти(ИмяЭлементаОтбора);
Если ДоступноеПоле <> Неопределено Тогда
ОписаниеТипа = Новый ОписаниеТипов(ДоступноеПоле.Тип);
Значение =ОписаниеТипа.ПривестиЗначение();
Нов = ТабличноеПолеВидыОтбора.Добавить();
Нов.ВидОтбора=Строка(Параметр.ЛевоеЗначение);
Нов.ПодборЗначения= Значение;
Нов.ВидСравнения= Параметр.ВидСравнения;
Нов.Пометка =ложь;
КонецЕсли;

Метод СодержитТип

 СодержитТип(<Тип>) 

Определяет, входит ли указанный тип в используемые данным объектом типы. Возвращает значение Истина если указанный тип входит в используемые типы; Ложь – в противном случае

Пример:

ПроверяемыйТип = Тип("Строка");
Если ДопустимыеТипы.СодержитТип(ПроверяемыйТип) Тогда
Сообщить("Описание типов содержит тип " + ПроверяемыйТип);
Иначе
Сообщить("Описание типов не содержит тип " + ПроверяемыйТип);
КонецЕсли;

Метод Типы

 Типы() 

Получает типы, используемые в объекте описания типов. Возвращает массив значений типа Тип, состоящий из используемых типов.

Пример заполнение списка типов документов по указанному элементу формы . Параметр Элемент (Элемент формы) имеет составной тип :

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

См. также:

Previous Article
Next Article

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.