Категорически не соглашусь с "мэтрами"
:
1. Правила по преобразованию примитивных типов к логическому выражению в условиях, которые X++ унаследовал от C/C++ никто и никогда отменять не будет. Чётко и ясно сказано что нулевое значение аргумента воспринимается компилятором как false, а ненулевое - true, сомневаться в этом - значит проявлять незнание языка и плодить излишне перегруженный конструкциями код.
if ( a )... всегда было и будет предпочтительнее чем if ( a != 0 ) так же как и
if ( !( a < b ) ) выглядит запутаннее и непонятнее, чем if ( a >= b )
(кстати в практике программирования на 1С встречал следующий код:
Если НЕ(ОсталосьСписать>0) Тогда
Прервать;
КонецЕсли;
долго смеялся
)
2. То же самое касается и преобразования Common в boolean.
if ( tbl ) выглядит гораздо проще и интуитивно понятнее чем if ( tbl.RecId )
Чем обоснованы рекомендации предпочитать tbl.RecId мне непонятно, ведь если когда нибудь правило преобразования Common в boolean хотя бы слегка изменят, половина кода аксапты станет неработоспособной, посему его никогда не изменят.
В общем я предпочитаю if ( table1 )
Хотя в принципе всё это вопрос вкуса и относится к той же теме что и вопрос о том звёздочками или плюсиками лучше помечать блоки комментариев в коде.