|
v7: Не получается получить имя колонки подзапроса 1с++ Класс ПрямойЗапрос |
☑ |
0
botman4
26.08.18
✎
09:49
|
ТекстЗапроса = " Select Товар from (Select ID as [Товар :Справочник.Номенклатура] from Справочник.Номенклатура) ";
Ругается на " no such column: Товар "
Как обратиться именно к колонке по имени?
|
|
1
Sserj
26.08.18
✎
10:09
|
Типизировать колонку запроса нужно только в итоговой выборке, так как эту типизацию будет обрабатывать уже 1С++ а не sql сервер. Сам сервер выражение [Товар :Справочник.Номенклатура] воспринимает просто как длинное имя колонки.
Поэтому должно выглядеть вот так:
Select Товар as [Товар :Справочник.Номенклатура] from (Select ID as [Товар] from Справочник.Номенклатура)
|
|
2
Sserj
26.08.18
✎
10:16
|
И кстати если используешь именно "ПрямойЗапрос" то типизации лучше писать как в мануале используя "$" а не ":" и использовать синонимы. Так как двоеточие воспринимает sqlite но не воспримет MS SQL и еще куча всяких нюансов в трансформации.
Тобишь лучше для класса будет:
ВЫБРАТЬ Товар КАК [Товар :Справочник.Номенклатура]
ИЗ (ВЫБРАТЬ $Товары.ТекущийЭлемент КАК [Товар] ИЗ Справочник.Номенклатура КАК Товары $nolock)
$nolock - вырежется при использовании sqlite и трансформируется в (nolock) для MSSQL
|
|
3
Sserj
26.08.18
✎
10:17
|
У самого двоеточие не убралось :)
ВЫБРАТЬ Товар КАК [Товар $Справочник.Номенклатура]
ИЗ
(
ВЫБРАТЬ $Товары.ТекущийЭлемент КАК [Товар]
ИЗ Справочник.Номенклатура КАК Товары $nolock
)
|
|
4
botman4
26.08.18
✎
10:31
|
Спасибо. Буду пробовать.
|
|