Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема подскажите условие в запросе (число прочтений - 2121 )
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
подскажите условие в запросе
29. Марта 2007 :: 06:29
Печать  
Добрый день.
база dbf, бухгалтерия.
нужно выбрать записи из Авансового отчета, удовлетворяющие только определенным условиям Субконто1

           |SELECT  
           | $ДокС.Сумма,
           | $Док.Сотрудник as  [Сотрудник $Справочник.Сотрудники],
           |   $ВидСправочника36.СтатьиОбщепроизводственныхЗатрат +Спр.ID as [Элемент $Справочник]
           |FROM
           |      $ДокументСтроки.АвансовыйОтчет as ДокС
           |INNER JOIN
           |      $Документ.АвансовыйОтчет as Док ON Док.IDDoc = ДокС.IDDoc
           |INNER JOIN
           |      1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc and
           |                         Жур.Date BETWEEN :НачДата~~ AND :КонДата~~ AND
           |                         Жур.Closed = 5
           |INNER JOIN   $Справочник.СтатьиОбщепроизводственныхЗатрат as Спр ON  $ДокС.Субконто1 ='B1'+$ВидСправочника36.СтатьиОбщепроизводственныхЗатрат +Спр.ID
           |Where $ДокС.КоррСчет = '"+ЗначениевСтрокуБДСчет25+"'  AND
          | $ДокС.Субконто1 in (Что тут должно быть!)



что должно быть тут
+"' AND
           | $ДокС.Субконто1 (???)

Перепробывал:
Уложить в список, и
$ДокС.Субконто1 in '"+стрТемп+"'

Как правильно
Подскажите пожалуйста
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: подскажите условие в запросе
Ответ #1 - 29. Марта 2007 :: 06:36
Печать  
Скорее всего тебе эту строку надо формировать методом ЗначениеВСтрокуБД(ОбъектХранимыйВБД) класса MetaDataWork
  
Наверх
 
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: подскажите условие в запросе
Ответ #2 - 29. Марта 2007 :: 07:08
Печать  
JohnyDeath писал(а) 29. Марта 2007 :: 06:36:
ЗначениеВСтрокуБД(ОбъектХранимыйВБД) класса MetaDataWork

Тогда подскажите как ее сформировать, так как условия для выборки хранятся в ТЗ на форме.Пользователь выбирает нужные, и хочет получить результат. ТЗ заполняется практически аналогичным запросом.
           |SELECT  DISTINCT  
           |      $ДокС.Субконто1 as Субконто,

Вот это значение (Субконто) и является условием для выбора
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: подскажите условие в запросе
Ответ #3 - 29. Марта 2007 :: 07:15
Печать  
Что-то типа такого:
Код
Выбрать все
	СтрСубконто = "";
	//СписокСубконто - список значений с твоими субкото
	Для н=1 По СписокСубконто.РазмерСписка() Цикл
		СтрСубконто=СтрСубконто+"'"+ СписокСубконто.ПолучитьЗначение(н) +"',"
	КонецЦикла;
	СтрСубконто = "(" +Лев(СтрСубконто, (СтрДлина(СтрСубконто)-1)) + ")";
 


а потом в запросе:
Код
Выбрать все
$ДокС.Субконто1 in "+СтрСубконто+" 

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


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: подскажите условие в запросе
Ответ #4 - 29. Марта 2007 :: 07:30
Печать  
Большое спасибо работает, проблема была то что скобки не использовал.  В начале и в конце строки поиска  Печаль
[quote author=JohnyDeath link=1175149759/0#3 date=1175152511]Что-то типа такого:
Код
Выбрать все
		СтрСубконто = "(" +Лев(СтрСубконто, (СтрДлина(СтрСубконто)-1)) + ")";
 



Но тогда вопрос, а можно было бы использовать "УложитьСписокОбъектов"  ?
Во временной таблице поле Val пустое
  
Наверх
 
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: подскажите условие в запросе
Ответ #5 - 29. Марта 2007 :: 09:40
Печать  
[quote author=JohnyDeath link=1175149759/0#3 date=1175152511]Что-то типа такого:
Код
Выбрать все
	СтрСубконто = "(" +Лев(СтрСубконто, (СтрДлина(СтрСубконто)-1)) + ")";
 



К сожалению строка может получиться большой  Печаль
Поэтому, подскажите как,  Использовать "УложитьСписокОбъектов"
Поле Val получается пустое  Печаль
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать