Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Помогите построить запрос по регистрам партий и продаж (число прочтений - 3021 )
Mpr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Сентября 2009
Помогите построить запрос по регистрам партий и продаж
10. Сентября 2009 :: 12:46
Печать  
Типовая торговля 7.7, хочу оптимизировать "Отчет по продажам". Пока у меня получается запрос:
     ТекстЗапроса="
     |select reg.Номенклатура [Номенклатура $Справочник.Номенклатура],
     |reg.Фирма [Фирма $Справочник.Фирмы],
     |reg.МОЛ [Мол $Справочник.ФизЛица],
     |reg.СтатусПартии [Статуспартии $Перечисление.СтатусыПартии],
     |reg.Партия [Партия $Справочник.Партии],
     |ТекДок.Док as [Док $Документ],      

     |$Партии.ПриходныйДокумент as [ДокПартии $Документ],
         
     |ТекДок.Док_вид as Док_вид,
     |sum(reg.КоличествоРасход) as Количество,
     |sum(reg.СуммаУпрРасход) as СуммаУпр,
     |sum(reg.СуммаРубРасход) as СуммаРуб,
     |sum(reg.СуммаБезНДСРасход) as СуммаБезНдс
     
     |from $РегистрОстаткиОбороты.ПартииНаличие(:ВыбДата1,:ВыбДата2~,
     |Документ,Движения,,";
              
     _ф=0;
     Если ВыбРазделитель1.Выбран()=1 тогда
           ТекстЗапроса=ТекстЗапроса+"Фирма in (Select val from #ВыбФирма)";
           _ф=1;
     КонецЕсли;

     Если ВыбТМЦ.Выбран()=1 тогда 
           Если _ф=1 тогда
                 ТекстЗапроса=ТекстЗапроса+" and ";
           КонецЕсли;
           ТекстЗапроса=ТекстЗапроса+"Номенклатура in (select val from #ВыбНоменклатура)";
     КонецЕсли;
                              
     ТекстЗапроса=ТекстЗапроса+",
     
     |(Фирма,Номенклатура,Мол,СтатусПартии,Партия),
     |(Количество, СуммаУпр, СуммаРуб, СуммаБезНДС)) as reg

     | join $Справочник.Партии Партии on Партии.ID = reg.Партия   
     

     |Left JOIN
     |    (SELECT          
     |        Жур.IDDoc as Док,            
     |        Жур.IDDocDef as Док_вид,
     |        Жур.DATE_TIME_IDDOC as ПозДок
     |     FROM
     |        _1SJourn as Жур
     |    ) as ТекДок on ТекДок.ПозДок = reg.ПозицияДокумента
     
     |Where ТекДок.Док_вид = $ВидДокумента.Реализация

     |group by reg.Фирма, reg.Номенклатура, reg.Мол, reg.СтатусПартии, reg.Партия, reg.ПозицияДокумента, ТекДок.Док, Партии.sp216, ТекДок.Док_Вид
     |order by reg.Номенклатура, reg.ПозицияДокумента";

Проблема в том, что мне нужно получить продажную стоимость товара, а в регистре ПартииНаличие, она лежит в реквизите регистра. Как оптимальнее всего получить стоимость (через регистр продаж или документ реализация может быть)?
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #1 - 10. Сентября 2009 :: 13:11
Печать  
Если как оптимательнее, то без ВТ в данном случае.
Код
Выбрать все
select
  $рег.МойРеквизит
from
 $Регистр.ПартииНаличие рег 


ВТ не даст выбрать значения реквизита.
  
Наверх
 
IP записан
 
Mpr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Сентября 2009
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #2 - 10. Сентября 2009 :: 13:29
Печать  
Я знаю, что до реквизита не достучусь. Но разве нельзя сделать join с еще одним регистром (продажная стоимость есть в регистре продажи например) или на худой конец к табличной части документа Реализация? Одним запросом...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #3 - 10. Сентября 2009 :: 13:36
Печать  
реквизиты регистрой нельзя получить в ВТ РегистрОстатки и РегистрОтстаткиОбороты только РегистрОбороты.

наверно лутше соединить две ВТ
  
Наверх
wwwICQ  
IP записан
 
Mpr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Сентября 2009
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #4 - 10. Сентября 2009 :: 13:37
Печать  
Вот я и прошу помощи в таком соединении - я еще очень мало знаю в прямых запросах и ВТ.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #5 - 10. Сентября 2009 :: 14:02
Печать  
ну так кидай сюда свои попытки а знающие подправят.

выбери отдельно остатки и отдельно движения  и соедини их "UNION ALL"

сгрупируй и посчитай кон остаток и радуйся
  
Наверх
wwwICQ  
IP записан
 
Mpr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Сентября 2009
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #6 - 10. Сентября 2009 :: 14:05
Печать  
Я пытался вот такую конструкцию добавить, но запрос ругается на некорректные колонки

     |Left JOIN
     |(SELECT Продажи.IDDOC [Документ $Документ]
      |    , Журнал.IDDOCDEF Документ_вид
       |    , Sum($Продажи.ПродСтоимость) СуммаПродСтоимость
       |FROM $Регистр.Продажи AS Продажи
       |LEFT JOIN _1SJOURN AS Журнал ON Продажи.IDDOC = Журнал.IDDOC   
       |GROUP BY Продажи.IDDOC) as РегМой On РегМой.Документ = ТекДок.Док
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #7 - 10. Сентября 2009 :: 14:17
Печать  
не получится так соединить, как минимум номер строки еще нужен(lineno_). Цена ведь ведь в строке документа?
Но это все совсем не оптимально. Сделайте без ВТ и возьмите цену из реквизита. А СуммаРуб/Количество не будет цена?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Помогите построить запрос по регистрам партий и продаж
Ответ #8 - 10. Сентября 2009 :: 14:23
Печать  
Mpr писал(а) 10. Сентября 2009 :: 14:05:
Я пытался вот такую конструкцию добавить, но запрос ругается на некорректные колонки

     |Left JOIN
     |(SELECT Продажи.IDDOC [Документ $Документ]
      |    , Журнал.IDDOCDEF Документ_вид
       |    , Sum($Продажи.ПродСтоимость) СуммаПродСтоимость
       |FROM $Регистр.Продажи AS Продажи
       |LEFT JOIN _1SJOURN AS Журнал ON Продажи.IDDOC = Журнал.IDDOC  
       |GROUP BY Продажи.IDDOC) as РегМой On РегМой.Документ = ТекДок.Док



а где вы в журнале нашли цены?
они хранятся в ТЧ документа
  
Наверх
wwwICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать