Типы и их иерархия

Понятия типа и контракта

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

Контрактом мы будем называть набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов. Другими словами, контракт — это те обязательства, которые берет на себя «1С:Шина», когда программист оперирует значением некоторого типа (экземпляром).

Таким образом, можно сказать, что тип — это множество допустимых значений и контракт.

В языке существует специальный тип Тип, который предназначен для идентификации типов значений. Этот тип необходим для определения и сравнения типов, а также для получения информации об иерархии типов.

Иерархия типов

Типы образуют иерархию. Это означает, что в отношении типов можно рассмотреть отношение «предок-потомок». При этом потомок какого-либо типа наследует контракт своего предка, но каким-либо образом расширяет или допустимые значения, или контракт, или оба этих параметра.

Также можно сказать, что предок какого-либо типа будет называться базовым типом. Соответственно, потомок типа будет называться производным типом. О базовых типах подробно написано здесь.

У одного типа может быть несколько базовых типов. Если тип А выступает базовым для типа Б, то переменной типа А можно присвоить значение типа Б.

В основании всей иерархии типов лежит тип Объект. Этот тип является базовым для всех типов, кроме типа Неопределено.

Обобщенные типы

В языке также поддерживаются обобщенные типы — универсальные шаблоны, параметризуемые типами. Например, можно использовать обобщенный тип Массив<Строка> — массив строк. Подробнее об обобщенных типах написано здесь.