Книга: «1С:Предприятие.Элемент». Возможности встроенного языка
Назад: Операция «это»
Дальше: Операции для работы со значением «Неопределено»

Операция «как»

В языке «1С:Предприятия» составной тип значения одного реквизита (который задавался на этапе конфигурирования) можно было привести к одному или нескольким возможным типам с помощью метода ПривестиЗначение() объекта ОписаниеТипов. Например:

ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.Сотрудники");

Объект.Реквизит2 = ОписаниеТипа.ПривестиЗначение(Объект.Реквизит1);

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

Например, при выполнении следующего кода в 3-й и 4-й строке будет получена ошибка компиляции, потому что тип ДатаВремя отсутствует в составе типов переменной Переменная:

пер Переменная: Строка|Число|Булево = 123

пер Переменная1 = (Переменная как Строка|Число)

пер Переменная2 = (Переменная как ДатаВремя) //ошибка компиляции

пер Переменная3 = (Переменная как Строка|ДатаВремя) //ошибка компиляции

пер Переменная4 = (Переменная как Число)

С помощью операции как нельзя выполнить преобразование типов, то есть нельзя преобразовать значение типа Число в значение типа Строка.

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

Например, чтобы получить длину строки переменной составного типа (Строка или Число), она приводится к типу Строка, заключается в скобки, и от нее через точку вызывается метод Длина() этого типа:

пер Переменная1: Строка|Число = "тест"

пер ДлинаСтроки = (Переменная1 как Строка).Длина()

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

Назад: Операция «это»
Дальше: Операции для работы со значением «Неопределено»