Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Добавить условие в запрос по реквизиту шапки документа (число прочтений - 2271 )
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Добавить условие в запрос по реквизиту шапки документа
23. Января 2009 :: 07:45
Печать  
Есть изначальный запрос:
Код
Выбрать все
ТекстЗапроса ="
		|SELECT
		|	Номенклатура.Code as Товар,  
		|	$ОприходованиеИзлишковСтроки.Количество as Количество,
		|	$ОприходованиеИзлишковСтроки.Цена as Цена,
		|	$ОприходованиеИзлишковСтроки.Сумма as Сумма,
		|	Журнал.Date as Дата
		|FROM
		|   $ДокументСтроки.ОприходованиеИзлишков as ОприходованиеИзлишковСтроки
		|INNER JOIN
		|	1SJourn as Журнал ON (ОприходованиеИзлишковСтроки.IDDoc = Журнал.IDDoc)
		|INNER JOIN
		|	$Справочник.Номенклатура as Номенклатура ON ($ОприходованиеИзлишковСтроки.Товар = Номенклатура.ID)
		|WHERE
		|	(Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~) and (Журнал.IDDocDef = $ВидДокумента.ОприходованиеИзлишков)
		|	and (Журнал.Closed = 1)
		|";
 


Необходимо добавить условие по реквизиту шапки видОприходования, который имеет тип Перечисление. Делаю так:
Код
Выбрать все
ТекстЗапроса ="
		|SELECT
		|	Номенклатура.Code as Товар,  
		|	$ОприходованиеИзлишков.ВидОприходования as ВидОприходования,
		|	$ОприходованиеИзлишковСтроки.Количество as Количество,
		|	$ОприходованиеИзлишковСтроки.Цена as Цена,
		|	$ОприходованиеИзлишковСтроки.Сумма as Сумма,
		|	Журнал.Date as Дата
		|FROM
		|   $ДокументСтроки.ОприходованиеИзлишков as ОприходованиеИзлишковСтроки,
		|   $Документ.ОприходованиеИзлишков as ОприходованиеИзлишков
		|INNER JOIN
		|	1SJourn as Журнал ON (ОприходованиеИзлишковСтроки.IDDoc = Журнал.IDDoc)
		|INNER JOIN
		|	$Справочник.Номенклатура as Номенклатура ON ($ОприходованиеИзлишковСтроки.Товар = Номенклатура.ID)
		|WHERE
		|	(Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~) and (Журнал.IDDocDef = $ВидДокумента.ОприходованиеИзлишков)
		|	and (Журнал.Closed = 1) and (ВидОприходования <> '"+MetaDataWork.ЗначениеВСтрокуБД(Перечисление.ВидОприходования.ЗагрузкаЦБ)+"')
		|";
 


Выходит ошибка:
FAILED! ICommandText::Execute(): SQL: Column '     ' is not found.
FAILED! ICommandText::Execute(): File 'inner.dbf' does not exist.
Направьте на путь истинный, пожалуйста  Улыбка
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #1 - 23. Января 2009 :: 08:22
Печать  
Вот это что
Код
Выбрать все
|FROM
		|   $ДокументСтроки.ОприходованиеИзлишков as ОприходованиеИзлишковСтроки,
		|   $Документ.ОприходованиеИзлишков as ОприходованиеИзлишков
 


??
В принципе такое допускается, но далее должно быть условие на связывание, иначе может получиться таблица размером
10 000 X 100 000 строк например. Лучше Join
Код
Выбрать все
and (ВидОприходования <> '"+MetaDataWork.ЗначениеВСтрокуБД(Перечисление.ВидОприходования.ЗагрузкаЦБ)+"')
 


напиши
Код
Выбрать все
and ($ОприходованиеИзлишков.ВидОприходования<> '"+MetaDataWork.ЗначениеВСтрокуБД(Перечисление.ВидОприходования.ЗагрузкаЦБ)+"')
 

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


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #2 - 23. Января 2009 :: 08:54
Печать  
Код
Выбрать все
SELECT
 Номенклатура.Code as Товар,
 $ОприходованиеИзлишковСтроки.Количество as Количество,
 $ОприходованиеИзлишковСтроки.Цена as Цена,
 $ОприходованиеИзлишковСтроки.Сумма as Сумма,
 Журнал.Date as Дата
FROM
 $ДокументСтроки.ОприходованиеИзлишков as ОприходованиеИзлишковСтроки
JOIN
 $Документ.ОприходованиеИзлишков as ОприходованиеИзлишков ON (ОприходованиеИзлишковСтроки.IDDoc = ОприходованиеИзлишков.IDDoc)
INNER JOIN
 1SJourn as Журнал ON (ОприходованиеИзлишковСтроки.IDDoc = Журнал.IDDoc)
INNER JOIN
 $Справочник.Номенклатура as Номенклатура ON ($ОприходованиеИзлишковСтроки.Товар = Номенклатура.ID)
WHERE
 (Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~) and (Журнал.IDDocDef = $ВидДокумента.ОприходованиеИзлишков)
 and (Журнал.Closed = 1) and ($ОприходованиеИзлишков.ВидОприходования <> '   5O6   ')
 


осталась только ошибка:
FAILED! ICommandText::Execute(): File 'inner.dbf' does not exist.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #3 - 23. Января 2009 :: 09:14
Печать  
А если
Цитата:
JOIN
$Документ.ОприходованиеИзлишков as ОприходованиеИзлишков ON (ОприходованиеИзлишковСтроки.IDDoc = ОприходованиеИзлишков.IDDoc)


заменить на
Цитата:
INNER JOIN
$Документ.ОприходованиеИзлишков as ОприходованиеИзлишков ON (ОприходованиеИзлишковСтроки.IDDoc = ОприходованиеИзлишков.IDDoc)


Вообще отлаживаю так.
Комментирую все строки,кроме необходимых, а потом по 1-2 раскомментирую, если не было ошибок.

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


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #4 - 23. Января 2009 :: 10:54
Печать  
Все равно: FAILED! ICommandText::Execute(): File 'inner.dbf' does not exist

А что это за файл inner.dbf и почему он должен существовать?? Смущённый
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #5 - 23. Января 2009 :: 12:13
Печать  
Первый запрос работает?
По шагам
Проверь
Код
Выбрать все
ТекстЗапроса ="
|SELECT
|	Номенклатура.Code as Товар,  
|	$ОприходованиеИзлишковСтроки.Количество as Количество,
|	$ОприходованиеИзлишковСтроки.Цена as Цена,
|	$ОприходованиеИзлишковСтроки.Сумма as Сумма,
|	Журнал.Date as Дата
|FROM
|   $ДокументСтроки.ОприходованиеИзлишков as ОприходованиеИзлишковСтроки
|INNER JOIN
 $Документ.ОприходованиеИзлишков as ОприходованиеИзлишков ON ( ОприходованиеИзлишков.IDDoc= ОприходованиеИзлишковСтроки.IDDoc)

|INNER JOIN
|	1SJourn as Журнал ON (ОприходованиеИзлишковСтроки.IDDoc = Журнал.IDDoc)
|INNER JOIN
|	$Справочник.Номенклатура as Номенклатура ON ($ОприходованиеИзлишковСтроки.Товар = Номенклатура.ID)
|WHERE
|	(Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~) and (Журнал.IDDocDef = $ВидДокумента.ОприходованиеИзлишков)
|	and (Журнал.Closed = 1)
|";

 


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


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #6 - 23. Января 2009 :: 13:11
Печать  
Сделал всё заново, теперь выдает ошибку:
A SQL statement is empty!

что она означает? Печаль
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Добавить условие в запрос по реквизиту шапки документа
Ответ #7 - 23. Января 2009 :: 13:13
Печать  
SashaL писал(а) 23. Января 2009 :: 13:11:
Сделал всё заново, теперь выдает ошибку:
A SQL statement is empty!

что она означает? Печаль


Первый (изначальный )в первом посте запрос работает или нет ?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать