Типы и их иерархия
Понятия типа и контракта
Тип — это множество допустимых значений и набор операций, которые можно выполнять над данными, принадлежащими этому типу. При описании типов будет использоваться понятие контракта.
Контрактом мы будем называть набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов. Другими словами, контракт — это те обязательства, которые берет на себя «1С:Исполнитель», когда программист оперирует значением некоторого типа (экземпляром).
Таким образом, можно сказать, что тип — это множество допустимых значений и контракт.
В языке существует специальный тип Тип, который предназначен для идентификации типов значений. Этот тип необходим для определения и сравнения типов, а также для получения информации об иерархии типов.
Иерархия типов
Типы образуют иерархию. Это означает, что в отношении типов можно рассмотреть отношение «предок-потомок». При этом потомок какого-либо типа наследует контракт своего предка, но каким-либо образом расширяет или допустимые значения, или контракт, или оба этих параметра.
Также можно сказать, что предок какого-либо типа будет называться базовым типом. Соответственно, потомок типа будет называться производным типом. О базовых типах подробно написано здесь.
У одного типа может быть несколько базовых типов. Если тип А выступает базовым для типа Б, то переменной типа А можно присвоить значение типа Б.
В основании всей иерархии типов лежит тип Объект. Этот тип является базовым для всех типов, кроме типа Неопределено.
Обобщенные типы
В языке также поддерживаются обобщенные типы — универсальные шаблоны, параметризуемые типами. Например, можно использовать обобщенный тип Массив<Строка> — массив строк. Подробнее об обобщенных типах написано здесь.