Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Meta name parser error (число прочтений - 3964 )
dunkpi
Junior Member
**
Отсутствует



Сообщений: 23
Зарегистрирован: 03. Июля 2007
Пол: Мужской
Meta name parser error
15. Июля 2007 :: 07:44
Печать  
Ничего не понимаю. Строки из 1Cv7.DDS:
#==TABLE no 322    : Документ Счет
...
F=SP21154               |(P)РезервПоГарантии |N   |1     |0       
...

Запрос
|SELECT *
|FROM
|      $Документ.Счет
|WHERE
|      SP21154 = 1
отбирает документы, а запрос
|SELECT *
|FROM
|      $Документ.Счет
|WHERE
|      $РезервПоГарантии = 1
вываливается с сообщением
Meta name parser error: неизвестное метаимя или алиас "$РезервПоГарантии"
Как такое может быть?
  
Наверх
ICQ  
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Meta name parser error
Ответ #1 - 15. Июля 2007 :: 09:07
Печать  
А так?
Код
Выбрать все
|SELECT *
|FROM
|	$Документ.Счет as Док
|WHERE
|	$Док.РезервПоГарантии = 1
 

  
Наверх
 
IP записан
 
dunkpi
Junior Member
**
Отсутствует



Сообщений: 23
Зарегистрирован: 03. Июля 2007
Пол: Мужской
Re: Meta name parser error
Ответ #2 - 15. Июля 2007 :: 11:49
Печать  
Работает, спасибо. Че-то я затупил.
  
Наверх
ICQ  
IP записан
 
dunkpi
Junior Member
**
Отсутствует



Сообщений: 23
Зарегистрирован: 03. Июля 2007
Пол: Мужской
Re: Meta name parser error
Ответ #3 - 15. Июля 2007 :: 17:04
Печать  
У меня такой вопрос: можно ли в результате выполнения запроса
     ТЗ = Запрос.ВыполнитьИнструкцию("
     |SELECT title_id
     |FROM(
     |SELECT
     |      Док.IDDOC title_id
     |FROM
     |      $Документ.Счет Док
     |WHERE   
     |      $Док.РезервПоГарантии = 1
     |
     |UNION
     |
     |SELECT
     |      ЗК.IDDOC title_id       
     |FROM                                    
     |      $Документ.Заявка ЗК
     |WHERE
     |      $ЗК.РезервПоГарантии = 1) Un
     |");            
     ТЗ.ВыбратьСтроку();
в результате получить нормальные идентификаторы документов, а не строки типа:
title_id
KNEC
FWCC
MFTC

  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Meta name parser error
Ответ #4 - 15. Июля 2007 :: 20:33
Печать  
SELECT title_id AS НормальныйИдентификаторДокумента
или
SELECT title_id [НормальныйИдентификаторДокумента $Документ.НужныйВид]

В общем пора читать доку...
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Meta name parser error
Ответ #5 - 16. Июля 2007 :: 00:09
Печать  
если title_id это документ определенного вида то проблем никаких - нужно точно типизировать документ, как сказал Вадимко, но в твоем случае запрос возвращает два разных вида документов, а значит так ни чего хорошего не получется.
Нужно еще одно поле "[имя]_вид" документа.
Взять его можно из журнала документов (_)1sjourn - это поле iddocdef

Короче - пора читать доку.
  
Наверх
 
IP записан
 
dunkpi
Junior Member
**
Отсутствует



Сообщений: 23
Зарегистрирован: 03. Июля 2007
Пол: Мужской
Re: Meta name parser error
Ответ #6 - 16. Июля 2007 :: 06:26
Печать  
Вадимко, я про это читал. Но какой может быть $Документ.НужныйВид, коли в таблице документы разных типов! Попробую соединять с _1SJourn наверное... Спасибо.
  
Наверх
ICQ  
IP записан
 
dunkpi
Junior Member
**
Отсутствует



Сообщений: 23
Зарегистрирован: 03. Июля 2007
Пол: Мужской
Re: Meta name parser error
Ответ #7 - 16. Июля 2007 :: 07:57
Печать  
Не получается обратиться к таблице, полученной в результате union-a... Вот отрывок запроса:
...
     |INNER JOIN(
     |SELECT
     |      Un.Д [Ды $Документ],
     |      Un.Д_вид Ды_вид
     |FROM(
     |      SELECT         
     |            Док.IDDOC Д,
     |            Жур.IDDOCDEF Д_вид
     |      FROM
     |            $Документ.Счет Док
     |      INNER JOIN _1SJourn Жур On Жур.IDDOC = Док.IDDOC
     |      WHERE   
     |            $Док.РезервПоГарантии = 1
     |
     |      UNION
     |
     |      SELECT
     |            ЗК.IDDOC Д,
     |            Жур.IDDOCDEF Д_вид
     |      FROM                                    
     |            $Документ.Заявка
     |      INNER JOIN _1SJourn Жур On Жур.IDDOC = ЗК.IDDOC
     |      WHERE
     |            $ЗК.РезервПоГарантии = 1) Un) Unic On Unic.Ды = RIGHT(Документ, 9)
...
Выскакивает ошибка:
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Ды'.
Хотя если не делать объединение, то сам запрос отрабатывает нормально, документы отбирает.
Подскажите пожалуйста, как выполнить такой запрос.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Meta name parser error
Ответ #8 - 16. Июля 2007 :: 08:26
Печать  
Типизировать имеет смысл только конечный результат, т.к. типизация происходит на клиенте. Во внутренних подзапросах это всего лишь псевдоним поля, т.о. чтобы запрос выполнился, условие связи надо писать так:

... On Unic.[Ды $Документ] = RIGHT(Документ, 9)
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Meta name parser error
Ответ #9 - 16. Июля 2007 :: 08:30
Печать  
dunkpi писал(а) 15. Июля 2007 :: 17:04:
в результате получить нормальные идентификаторы документов, а не строки типа:
title_id
KNEC
FWCC
MFTC


Вот эти строки какраз и есть - нормальные идентификаторы документов. А надо-то что?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать