Операция «как» — приведение типов
Операция как позволяет привести значение выражения слева к типу справа.
Синтаксис
выражение как тип
выражение— выражение, тип результата которого необходимо привести к требуемому типу;тип— тип, к которому необходимо привести тип результата вычисления выражения. Этот тип должен быть одним из возможных типов для результата вычисления выражения.
В результате выполнения операции:
- возвращается результат вычисления выражения, если приведение типов возможно;
 - выбрасывается исключение, если выполнить приведение типов невозможно.
 
Особенности использования
С помощью операции как нельзя выполнять преобразование типов, то есть нельзя, например, преобразовать значение типа Число в значение типа Строка. Используйте операцию как в тех случаях, когда значение выражения имеет составной тип и нужно привести его к одному конкретному типу.
Также операцию как можно использовать тогда, когда типом параметра метода выступает какой-либо базовый тип, например Объект. Параметр метода может использоваться в качестве входного параметра другого метода, который принимает значение конкретного типа, являющегося потомком типа Объект. Тогда вначале выполняется проверка, что значение имеет нужный тип (например, Строка), а затем выполняется приведение типов при передаче в другой метод.
Если необходимо присвоить значение какого-либо типа переменной, которая объявлена с типом неизвестно, то такое присваивание можно выполнять без использования операции к ак.
Примеры
пер Переменная: Строка|Число|Булево = 0
пер Переменная1 = Переменная как Число // ОК
пер Переменная2 = Переменная как Строка|Число // ОК
пер Переменная3 = Переменная как Дата // Ошибка компиляции: Несовместимые типы "Булево|Число|Строка" и "Дата"
пер Переменная4 = Переменная как Число|Дата // ОК
пер Переменная5 = Переменная как Стр ока|Дата // Ошибка выполнения: Значение типа "Число" не соответствует ожидаемому типу "Строка|Дата"
метод ПолучитьДлинуСтроки(Объект: Объект): Строка
    если Объект это Строка
        знч Длина = (Объект как Строка).Длина()
        возврат "Длина строки: $Длина"
    ;
    возврат "Это не строка"
;
метод ВычислитьДлину()
    ПолучитьДлинуСтроки(100) // "Это не строка"
    ПолучитьДлинуСтроки("Строка") // "Длина строки: 6"
;