Особенность условного оператора

Столкнулся с интересной особенностью условного оператора.

В функции SelfOnDatasetDataChange(DataField) написал следующее выражение:

if ((DataField.Name == 'TypeID') || (DataField.Name == 'AccountID'))

при этом условие срабатывает только на изменение поля "контрагент", на изменении "типа", ноль внимания.

Изменив условие следующим образом

if (DataField.Name == 'TypeID') or (DataField.Name == 'AccountID')

получил желаемый результат.

Но почему?! =)

pS. Terrasoft 3.2.0.10

Нравится

1 комментарий

Добрый день, Вадим.

В тексте скрипта (JScript) пишу:

function Main() {
var t = 3;
if ((t == 3) || (t == 5)) {
Log.Write(2, '!');
}
}

Все работает правильно для t = 3 и t = 5
При указании or скрипт даже не проходит проверку правильности синтаксиса (Ctrl+F9).
Кстати, для условия в if обязательно ставить скобки, т.е. в Вашем случае будет правильно написать:

if ((DataField.Name == 'TypeID') || (DataField.Name == 'AccountID')) {
...
}

и все должно работать.

Показать все комментарии