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