Особенности использования объекта “ОписаниеТипов”

Печать (Ctrl+P)

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

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

Следует учитывать, что объект ОписаниеТипов и значение типа Тип – это два совсем разных по смыслу значения. Значение типа Тип идентифицирует тип конкретного значения, а ОписаниеТипов описывает область допустимых значений там, где могут храниться значения. 

Объект ОписаниеТипов, кроме перечня типов, содержит квалификаторы для типов Дата, Строка и Число. С помощью квалификаторов для этих примитивных типов может быть установлено дополнительное ограничение допустимых значений.

Важной особенностью объекта ОписаниеТипов является работа с типом Неопределено. Если в объекте ОписаниеТипов задано более одного типа, то считается, что кроме значений заданных типов, может храниться и значение типа Неопределено. Это необходимо, потому что если, например, какой либо реквизит имеет составной тип (допускает хранение более одного типа), то значением по умолчанию для данного реквизита будет значение Неопределено. Если допускается хранение одного типа, то значением по умолчанию будет являться значение по умолчанию этого типа. Таким образом, тип Неопределено всегда неявно присутствует в перечне типов объекта ОписаниеТипов если в нем задано более одного типа. 

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

Если в объекте ОписаниеТипов не заданио ни одного типа, то считается, что в данном случае может храниться любой тип. Использование метода ПривестиЗначение() в этом случае не имеет смысла.

При использовании запросов следует учитывать, что в результате запроса в колонках, кроме типов значений исходных полей, могут присутствовать значения типа NULL. Поэтому тип колонки таблицы значений, полученной из результата запроса, не будет полностью соответствовать типу исходного поля таблицы, а будет дополнительно содержать тип NULL.

См. также:

0

Автор публикации

не в сети 4 недели

master1c8

0
Комментарии: 11Публикации: 425Регистрация: 25-12-2016

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

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

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