Типизировать колонку запроса нужно только в итоговой выборке, так как эту типизацию будет обрабатывать уже 1С++ а не sql сервер. Сам сервер выражение [Товар :Справочник.Номенклатура] воспринимает просто как длинное имя колонки.
Поэтому должно выглядеть вот так:
Select Товар as [Товар :Справочник.Номенклатура] from (Select ID as [Товар] from Справочник.Номенклатура)
И кстати если используешь именно "ПрямойЗапрос" то типизации лучше писать как в мануале используя "$" а не ":" и использовать синонимы. Так как двоеточие воспринимает sqlite но не воспримет MS SQL и еще куча всяких нюансов в трансформации.
Тобишь лучше для класса будет:
ВЫБРАТЬ Товар КАК [Товар :Справочник.Номенклатура]
ИЗ (ВЫБРАТЬ $Товары.ТекущийЭлемент КАК [Товар] ИЗ Справочник.Номенклатура КАК Товары $nolock)
$nolock - вырежется при использовании sqlite и трансформируется в (nolock) для MSSQL
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший