Обработка несвязанных структур

При связывании экземпляра структуры со сценариями динамизации в Среде Исполнения могут возникнуть ситуация, когда некоторые поля экземпляра структуры не заданы. В этом случае реакция системы определяется в зависимости от типа обработки ошибочных ситуаций связывания, который задается при настройке Среды Исполнения (см. раздел Настройка Среды Исполнения).

В первом случае если поле структуры не задано, то весь сценарий, в котором присутствует незаполненное поле, не выполняется.

Во втором случае для полей типа RW (чтение-запись) используются фиктивные переменные соответствующего типа. При этом значения этих переменных и их полей по умолчанию равны 0 или пустой строке в зависимости от типа переменной или поля. Но вследствие того, что для всех сценариев используется только одна числовая и одна строковая фиктивная переменная, ее значение в любой момент времени неопределенно.

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

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

Пример:

if ($(Analog.Klapan.Name) != "") this.Text = $(Analog.Klapan.MaxEU);