Вход | Регистрация

1С:Предприятие ::

Метки: 

v7: Не получается получить имя колонки подзапроса 1с++ Класс ПрямойЗапрос

Я
   botman4
 
26.08.18 - 09:49
ТекстЗапроса = " Select Товар  from (Select ID as [Товар :Справочник.Номенклатура] from Справочник.Номенклатура) ";    

Ругается на  " no such column: Товар "

Как обратиться именно к колонке по имени?
 
 
   Sserj
 
1 - 26.08.18 - 10:09
Типизировать колонку запроса нужно только в итоговой выборке, так как эту типизацию будет обрабатывать уже 1С++ а не sql сервер. Сам сервер выражение [Товар :Справочник.Номенклатура] воспринимает просто как длинное имя колонки.
Поэтому должно выглядеть вот так:

Select Товар as [Товар :Справочник.Номенклатура] from (Select ID as [Товар] from Справочник.Номенклатура)
   Sserj
 
2 - 26.08.18 - 10:16
И кстати если используешь именно "ПрямойЗапрос" то типизации лучше писать как в мануале используя "$" а не ":" и использовать синонимы. Так как двоеточие воспринимает sqlite но не воспримет MS SQL и еще куча всяких нюансов в трансформации.
Тобишь лучше для класса будет:

ВЫБРАТЬ Товар КАК [Товар :Справочник.Номенклатура]
ИЗ (ВЫБРАТЬ $Товары.ТекущийЭлемент КАК [Товар] ИЗ Справочник.Номенклатура КАК Товары $nolock)

$nolock - вырежется при использовании sqlite и трансформируется в (nolock) для MSSQL
   Sserj
 
3 - 26.08.18 - 10:17
У самого двоеточие не убралось :)

ВЫБРАТЬ Товар КАК [Товар $Справочник.Номенклатура]
ИЗ
 (
  ВЫБРАТЬ $Товары.ТекущийЭлемент КАК [Товар]
  ИЗ Справочник.Номенклатура КАК Товары $nolock
  )
   botman4
 
4 - 26.08.18 - 10:31
Спасибо. Буду пробовать.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует