Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Помогите: запрос с табличной частью док-та (число прочтений - 4887 )
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Помогите: запрос с табличной частью док-та
27. Декабря 2006 :: 15:51
Печать  
С наступающим всех форумчан!

и помогите, плз, новичку

Есть в журнале "Счета" документы "Счет" (обныкновенная счет-фактура) с табличной частью, где есть реквизит "Товар" как элемент спр-ка "Номенклатура".
Надо в диапозоне дат периода журнала (не принципиально, допустим НачДата и КонДата) запросом выбрать все документы Счета где в табличной части засветился товар, в наименовании которого входит строка поиска "ВыбСтрока". Другими словами, на форме поиска строчный реквизит "Товар", по вхождению которого в наименование товара отбираются документы "Счет" с этим товаром в табл. части.
Заранее благодарю
  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #1 - 27. Декабря 2006 :: 18:06
Печать  
пример есть в любой книге по тскл.
общее направление такое:
селект фром нужный вид документа, иннер джойн с журналом, иннер джойн со справочником где descr like %...%
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #2 - 27. Декабря 2006 :: 19:26
Печать  
Может тупо... но вроде работает

Код
Выбрать все
ТекстЗапроса = "
		|SELECT ЗаявкаПокупателяСтроки.IDDOC [Ссылка $Документ.ЗаявкаПокупателя]
		|FROM $ДокументСтроки.ЗаявкаПокупателя AS ЗаявкаПокупателяСтроки With (NOLOCK)
		|	INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON ЗаявкаПокупателяСтроки.IDDOC = Журнал.IDDOC
		|	INNER JOIN $Справочник.Номенклатура AS Номенклатура With (NOLOCK) ON $ЗаявкаПокупателяСтроки.Номенклатура = Номенклатура.ID
		|WHERE (Журнал.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~)
		|	AND (Номенклатура.DESCR like :ВыбНаименование)
		|";



	Запрос.УстановитьТекстовыйПараметр("НачДата",				ДатаНачала);
	Запрос.УстановитьТекстовыйПараметр("КонДата",				ДатаКонца);
    Запрос.УстановитьТекстовыйПараметр("ВыбНаименование",		"%"+СокрЛП(ВыбНаименование)+"%");
 



  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #3 - 28. Декабря 2006 :: 05:36
Печать  
Цитата:
Может тупо... но вроде работает

Код
Выбрать все
... 



нормально, но я бы добавил условие: and Журнал.iddocdef = $ВидДокумента.ЗаявкаПокупателя
  

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


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #4 - 28. Декабря 2006 :: 08:06
Печать  
Это просто новогодняя сказка какая-то.

Спасибо всем!
  
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #5 - 28. Декабря 2006 :: 13:26
Печать  
Вот что-то наваял, работает. НО !!!

ТекстЗапроса = "
           |SELECT
           |      Счет.IDDOC as [Ссылка $Документ.Счет],
           |      Номенклатура.ID as [Товар $Справочник.Номенклатура]
           |FROM
           |      $ДокументСтроки.Счет AS Счет With (NOLOCK)
           |INNER JOIN
           |      _1SJOURN AS Жур With (NOLOCK) ON Счет.IDDOC = Жур.IDDOC
           |INNER JOIN
           |      $Справочник.Номенклатура AS Номенклатура With (NOLOCK) ON $Счет.Товар = Номенклатура.ID
           |WHERE (Жур.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~)
           |      AND (Номенклатура.DESCR like :ВыбТовар AND isfolder<>1)
           |ORDER BY
           |      Счет.IDDOC
           |";

Туплю: а как тут в этом запросе получить еще и контрагента счета, номер счета, вид документа (счета) из документа "Счет"?
  
Наверх
ICQ  
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #6 - 28. Декабря 2006 :: 13:46
Печать  
всё зависит от того где эти данные хранятся. джойнишь те или иные таблицы (если нужно) и выводишь селектом
  
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #7 - 28. Декабря 2006 :: 14:21
Печать  
Kapet писал(а) 28. Декабря 2006 :: 08:06:
Это просто новогодняя сказка какая-то.


Падалута! С новым годом!
Будет вдвойне радостней если эти соединения (LEFT JOIN) cделаешь сам по аналогии  Очень довольный
  

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


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #8 - 28. Декабря 2006 :: 14:38
Печать  
Спасибо всем, родил
  
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #9 - 28. Декабря 2006 :: 15:03
Печать  
Новая загадка. Как получить и документ (Счет), и его контрагента, и сумму с НДС в табличной части, и отобрать по совпадению фрагмента строки со строкой суммы с НДС? Так, как ниже, ессно не работает, а лучше придумать пока не могу...

ТекстЗапроса="
                       |SELECT
                       |      Счет.IDDOC as [Ссылка $Документ.Счет],
                       |      $_Счет.Контрагент as [Контрагент $Справочник.Контрагенты],
                       |      SUM($Счет.СуммаСНДС) as [СуммаСНДС]
                       |FROM
                       |      $ДокументСтроки.Счет AS Счет With (NOLOCK)
                       |INNER JOIN
                       |      _1SJOURN AS Жур With (NOLOCK) ON Счет.IDDOC = Жур.IDDOC
                       |INNER JOIN
                       |      $Документ.Счет as _Счет With (NOLOCK) ON Счет.IDDOC = _Счет.IDDOC
                       |INNER JOIN
                       |      $Справочник.Номенклатура AS Номенклатура With (NOLOCK) ON $Счет.Товар = Номенклатура.ID
                       |WHERE
                       |      (Жур.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~)
                       |GROUP BY  
                       |      $Счет.Товар
                       |HAVING
                       |      SUM($Счет.СуммаСНДС) like :ВыбСумма
                       |ORDER BY
                       |      Счет.IDDOC
                       |";
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #10 - 28. Декабря 2006 :: 18:30
Печать  
|SELECT ЗаявкаПокупателяСтроки.IDDOC [Ссылка $Документ.ЗаявкаПокупателя]
           |, $ЗаявкаПокупателяСтроки.СуммаНДС СуммаНДС
           |, $ЗаявкаПокупателя.Контрагент [Контрагент $Справочник.Контрагенты]
           |FROM $ДокументСтроки.ЗаявкаПокупателя AS ЗаявкаПокупателяСтроки With (NOLOCK)
           |      INNER JOIN $Документ.ЗаявкаПокупателя AS ЗаявкаПокупателя With (NOLOCK) ON ЗаявкаПокупателяСтроки.IDDOC = ЗаявкаПокупателя.IDDOC
           |      INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON ЗаявкаПокупателяСтроки.IDDOC = Журнал.IDDOC
           |      INNER JOIN $Справочник.Номенклатура AS Номенклатура With (NOLOCK) ON $ЗаявкаПокупателяСтроки.Номенклатура = Номенклатура.ID
           |WHERE (Журнал.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~)
           |      AND ($ЗаявкаПокупателяСтроки.СуммаНДС like :ВыбНаименование)
  

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


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Помогите: запрос с табличной частью док-та
Ответ #11 - 03. Января 2007 :: 19:32
Печать  
Большое спасибо! Теперь работает!
« Последняя редакция: 04. Января 2007 :: 16:00 - Kapet »  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать