Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) алиасы в строках документа (число прочтений - 3131 )
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
алиасы в строках документа
19. Сентября 2007 :: 01:41
Печать  
Наткнулся на непонятное
Код
Выбрать все
	|	SELECT
	|		Жур.iddoc as Документ,
	|		Жур.iddocdef as ВидДокумента,
	|		$ДокРР.Склад as Склад,
	|		$ДокументСтроки.РеализацияРозница.Номенклатура as Номенклатура,
	|		0 as СуммаКредит,
	|		ДокРРСтр.sp5285 as СуммаЗаНал,
	|		$ДокументСтроки.РеализацияРозница.Количество as КоличествоОборот,
	|	FROM $ДокументСтроки.РеализацияРозница as ДокРРСтр
	|	INNER JOIN $Документ.РеализацияРозница ДокРР ON (ДокРР.iddoc=ДокРРСтр.iddoc)"+?(ВыбСклад.Выбран()=1,"
	|										AND ($ДокРР.Склад=:"+ИмяСклада+")","")+"
	|	INNER JOIN _1sjourn Жур ON (Жур.iddoc=ДокРРСтр.iddoc)
	|							AND(Жур.date_time_iddoc BETWEEN :НачПериода AND :КонПериода~)
	|							AND(Жур.closed & 1 = 1)

 


работает, а код
Код
Выбрать все
	|	SELECT
	|		Жур.iddoc as Документ,
	|		Жур.iddocdef as ВидДокумента,
	|		$ДокРР.Склад as Склад,
	|		$ДокРРСтр.Номенклатура as Номенклатура,
	|		0 as СуммаКредит,
	|		$ДокРРСтр.Сумма as СуммаЗаНал,
	|		$ДокРРСтр.Количество as КоличествоОборот,
	|	FROM $ДокументСтроки.РеализацияРозница as ДокРРСтр
	|	INNER JOIN $Документ.РеализацияРозница ДокРР ON (ДокРР.iddoc=ДокРРСтр.iddoc)"+?(ВыбСклад.Выбран()=1,"
	|										AND ($ДокРР.Склад=:"+ИмяСклада+")","")+"
	|	INNER JOIN _1sjourn Жур ON (Жур.iddoc=ДокРРСтр.iddoc)
	|							AND(Жур.date_time_iddoc BETWEEN :НачПериода AND :КонПериода~)
	|							AND(Жур.closed & 1 = 1)
 


ругается на алиас $ДокРРСтр

Более того! Видете вот это "sp5285" в первом запросе? Это потому, что на строку $ДокументСтроки.РеализацияРозница.Сумма скля очень сильно ругалась нипанятными словами (одинаковые поля в таблицах dh и dt, а метапарсер подставляет только sp5285 не указывая алиас таблицы)
блин, толи я туплю, то ли...

ЗЫ: пробовплось на 1С++ в.2.0.3.1, 2.0.5.0, эска 25, скля 8.0
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #1 - 19. Сентября 2007 :: 04:22
Печать  
Ни первый ни второй запросы работать не будут, т.к. после слова КоличествоОборот стоит запятая. Так что: "вы врете, сударь!"

Цитата:
(одинаковые поля в таблицах dh и dt, а метапарсер подставляет только sp5285 не указывая алиас таблицы)
блин, толи я туплю, то ли...

Хы, ну как тебе сказать, чтоб не обидеть.. Об этом написано в документации, в Приложении А, вобще-то.  Улыбка
  
Наверх
ICQ  
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #2 - 19. Сентября 2007 :: 04:39
Печать  
я понимаю, что педантичность это не порок, но блин, запрос же из другого вырван!
чего к словам то прикапываться?  Нерешительный
Запросы работают, но на первый ругается метапарсер

Мне не понятно, почему в таблицах dt/dh есть поле сумма, хотя реквизит с таким именем есть только в табличной части. Как указать парсеру имя я не понял...
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #3 - 19. Сентября 2007 :: 04:59
Печать  
Цитата:
Мне не понятно, почему в таблицах dt/dh есть поле сумма, хотя реквизит с таким именем есть только в табличной части. Как указать парсеру имя я не понял...

По реквизиту Сумма стоит итог по колонке, значит в таблице реквизитов документа (dh) будет поле с тем же именем что и в таблице ТЧ документа (dt), в которой будет храниться итог по колонке, и метапарсер позволяет разрешать имя такого реквизита через имена Документ и ДокументСтроки, а также через алиасы этих таблиц, но это будут поля разных таблиц базы данных.

Цитата:
Запросы работают, но на первый ругается метапарсер

Теперь уже первый не работает Ужас , а в первом посте написано наоборот. Как же тебя понять?
И еще, КАК ЭТО: ЗАПРОСЫ РАБОТАЮТ, НО МЕТАПАРСЕР РУГАЕТСЯ, если метапарсер вернул ошику, он не отправляет запрос на сервер.
  
Наверх
ICQ  
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #4 - 19. Сентября 2007 :: 07:45
Печать  
палюсь...

Второй не работает.
Я имею ввиду что запрос в принципе правильный, но он работает только если алиасы таблиц перевести в полный путь к объекту!
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: алиасы в строках документа
Ответ #5 - 19. Сентября 2007 :: 07:54
Печать  
Vaicartana писал(а) 19. Сентября 2007 :: 07:45:
палюсь...

Второй не работает.
Я имею ввиду что запрос в принципе правильный, но он работает только если алиасы таблиц перевести в полный путь к объекту!


А что кажет
МД.ОбрМетаСКЛ(ВторойТекстЗапроса) ?
Можешь привести здесь?
  
Наверх
 
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #6 - 19. Сентября 2007 :: 08:06
Печать  
да собственно тоже и пишет
Meta name parser error: неизвестное метаимя или алиас "$ДокРСтр"
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: алиасы в строках документа
Ответ #7 - 19. Сентября 2007 :: 08:47
Печать  
Проверил твой второй запрос, кроме ошибок с запятой и
странного
Жур.date_time_iddoc BETWEEN :НачПериода AND :КонПериода~

все нормально работает.
Может у тебя поле - не Номенклатура а например Товар. Проверь поле, на который ругается.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #8 - 19. Сентября 2007 :: 09:49
Печать  
Vaicartana писал(а) 19. Сентября 2007 :: 04:39:
я понимаю, что педантичность это не порок, но блин, запрос же из другого вырван!

а в этом другом/полном запросе алиас ДокРРСтр случайно не применен еще и к другой к таблице (например где-нибуть за union all). Сразу скажу, что с точки зрения tsql это нормально, но метапарсер этого не переваривает.
  

1&&2&&3
Наверх
 
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: алиасы в строках документа
Ответ #9 - 20. Сентября 2007 :: 05:14
Печать  
нет.
нигде больше не используется.
могу выдать весь запрос, но это ничего не  даст, не работает даже малый
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: алиасы в строках документа
Ответ #10 - 20. Сентября 2007 :: 07:30
Печать  
Vaicartana писал(а) 20. Сентября 2007 :: 05:14:
нет.
нигде больше не используется.
могу выдать весь запрос, но это ничего не  даст, не работает даже малый


Нет смысла приводить большой запрос, пока малый не работает - лучше опробовать его.
В твоем малом 2 ошибки - запятая и даты. Но наверно ты их уже поправил.
Преобразовал твой к своей конфе
Код
Выбрать все
	|	SELECT
	|		Жур.iddoc as Документ,
	|		Жур.iddocdef as ВидДокумента,
	|		$ДокРР.Склад as Склад,
	|		$ДокРРСтр.Товар as Номенклатура,
	|		0 as СуммаКредит,
	|		$ДокРРСтр.Сумма as СуммаЗаНал,
	|		$ДокРРСтр.Количество as КоличествоОборот
	|	FROM $ДокументСтроки.РасходнаяНакладная as ДокРРСтр
	|	INNER JOIN $Документ.РасходнаяНакладная ДокРР ON (ДокРР.iddoc=ДокРРСтр.iddoc)
	|	INNER JOIN 1sjourn Жур ON (Жур.iddoc=ДокРРСтр.iddoc)
	|							AND(Жур.date BETWEEN :НачПериода~~ AND :КонПериода~~)	 


Работает нормально. Если все ошибки у тебя исправлены - возможно сборка, но ...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать