На последний вопрос сам спросил - сам ответил
Нужно использовать метод data() соответствующей табличной переменной или MAP.
X++:
CustVendTable = true ? CustVendTable.data(VendTable::find(...)) : CustVendTable.data(CustTable::find(...));
X++:
// перебор записей в DataSource формы
for (lookupJournalTable = (dataSource && dataSource.getFirst(1) ? journalTable.data(dataSource.getFirst(1)) : journalTable);
lookupJournalTable;
lookupJournalTable = (dataSource ? dataSource.getNext() : null))
{
...
}
Тут следует заметить, что явное преобразование типов требуется только в том случае, если вычисляемые типы тринарного оператора имеют разное значение. Например, вот такой код будет откомпилирован без ошибок.
X++:
CustVendTable = true ? VendTable::find(...) : VendTable::find(...);