Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Реквизит реквизита Измер-z регистра (leshik,help) (число прочтений - 2359 )
Shavkat
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 29. Июня 2008
Реквизит реквизита Измер-z регистра (leshik,help)
02. Июля 2008 :: 17:55
Печать  
Регистр ПартияНаличие, Измерение - Партия (тип "Справочник.Партии").
У справочника партии есть реквизит ПриходныйДокумент, у реквизита ПриходныйДокумент есть реквизит СКЛАД. Вопрос: как этот СКЛАД вытащить при обработке движений регистра.  Реквизит ПриходныДокумент тип Документ неопределенного вида.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Реквизит реквизита Измер-z регистра (lesnik,he
Ответ #1 - 02. Июля 2008 :: 18:13
Печать  
дай запрос гляну
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Реквизит реквизита Измер-z регистра (lesnik,he
Ответ #2 - 02. Июля 2008 :: 18:14
Печать  
и во всех ли приходных документах есть реквизит склад?
  
Наверх
IP записан
 
Shavkat
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 29. Июня 2008
Re: Реквизит реквизита Измер-z регистра (lesnik,he
Ответ #3 - 02. Июля 2008 :: 18:19
Печать  
Во всех (а их всего два- ПоступлениеТМЦ,  Оприходование), а запрос такой
     |SELECT  
     |      CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime) as День,
     |      $Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура],  
     |      SUM($Рег.Количество * ((Рег.DEBKRED + 1) % 2)) as КолПриход,      
     |      SUM($Рег.Количество  * Рег.DEBKRED) as КолРасход,
     |      SUM($Рег.СуммаРуб * ((Рег.DEBKRED + 1) % 2)) as ПСт,
     |      SUM($Рег.СуммаРуб  * Рег.DEBKRED) as РСт,
     |      SUM($Рег.ПродСтоимость * ((Рег.DEBKRED + 1) % 2)) as ВыручкаМинус,
     |      SUM($Рег.ПродСтоимость * Рег.DEBKRED) as ВыручкаПлюс,
     |      SUM($Рег1.СуммаРуб / $Рег2.Количество * $Рег.Количество * Рег.DEBKRED) as ЗатратыП
     |FROM  $Регистр.ПартииНаличие AS Рег (NOLOCK)
     |      
     |LEFT JOIN _1SJOURN AS J ON  J.IDDOC = RIGHT(Рег.IDDOC,9)
     |
     |LEFT JOIN $Регистр.ПартииНаличие AS Рег1 ON $Рег1.Номенклатура = $Рег.Номенклатура
     |      AND $Рег1.Партия = $Рег.Партия
     |   AND $Рег1.КодОперации IN (SELECT Val FROM #КОДоп)
     |LEFT JOIN $Регистр.ПартииНаличие AS Рег2 ON $Рег2.Номенклатура = $Рег.Номенклатура
     |      AND $Рег2.Партия = $Рег.Партия
     |      AND $Рег2.КодОперации IN (SELECT Val FROM #КОЗакуп)  
     |
     |WHERE (CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime) BETWEEN :ДатаНачала AND :ДатаКонца)
     |      AND $Рег.КодОперации  IN (SELECT Val FROM #КО)
     |      
     |GROUP BY CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime), $Рег.Номенклатура,      |Order By CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime), $Рег.Номенклатура ";  


Здесь еще склад не выбирался -- его в список колонок таблицы запихать и в группировку
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Реквизит реквизита Измер-z регистра (lesnik,he
Ответ #4 - 02. Июля 2008 :: 18:23
Печать  
насколько я понимаю - комплексная конфигурация? щас попробую сделать. у тебя там еще кое что неправильно.
  
Наверх
IP записан
 
Shavkat
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 29. Июня 2008
Re: Реквизит реквизита Измер-z регистра (leshik,he
Ответ #5 - 02. Июля 2008 :: 18:25
Печать  
Нет, конфа - Торговля+Склад 9.2 - релиз старый, правда. А в этом виде работает как надо.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Реквизит реквизита Измер-z регистра (leshik,he
Ответ #6 - 02. Июля 2008 :: 19:28
Печать  
svet otklyuchili. izvini. zavtra s utra postarayus pomoch.
  
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Реквизит реквизита Измер-z регистра (leshik,he
Ответ #7 - 02. Июля 2008 :: 22:24
Печать  
Надо бы предусмотреть что Количество в Рег или Рег2 может быть нулевое (case например)
И зачем еще два соединения?
По поводу склада - походу придется делать много-много соединений с шапками документов Улыбка
  

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


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 29. Июня 2008
Re: Реквизит реквизита Измер-z регистра (leshik,he
Ответ #8 - 03. Июля 2008 :: 05:16
Печать  
Всем спасибо. Решил не изобретать велосипед. Выбрал документ партии и уже в эске выбираю и группирую по складу.
Код:
ТекстЗапроса ="
     |SELECT  
     |      CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime) as День,
     |      $Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура],
     |      $Партия.ПриходныйДокумент as [ПрихДок $Документ],
     |      SUM($Рег.Количество * ((Рег.DEBKRED + 1) % 2)) as КолПриход,      
     |      SUM($Рег.Количество  * Рег.DEBKRED) as КолРасход,
     |      SUM($Рег.СуммаРуб * ((Рег.DEBKRED + 1) % 2)) as ПСт,
     |      SUM($Рег.СуммаРуб  * Рег.DEBKRED) as РСт,
     |      SUM($Рег.ПродСтоимость * ((Рег.DEBKRED + 1) % 2)) as ВыручкаМинус,
     |      SUM($Рег.ПродСтоимость * Рег.DEBKRED) as ВыручкаПлюс,
     |      SUM($Рег1.СуммаРуб / $Рег2.Количество * $Рег.Количество * Рег.DEBKRED) as ЗатратыП
     |FROM  $Регистр.ПартииНаличие AS Рег (NOLOCK)
     |      
     |LEFT JOIN _1SJOURN AS J ON  J.IDDOC = RIGHT(Рег.IDDOC,9)
     |                                                                                  
     |LEFT JOIN $Справочник.Партии AS Партия ON Партия.ID = $Рег.Партия
     |
     |LEFT JOIN $Регистр.ПартииНаличие AS Рег1 ON $Рег1.Номенклатура = $Рег.Номенклатура
     |      AND $Рег1.Партия = $Рег.Партия
     |   AND $Рег1.КодОперации IN (SELECT Val FROM #КОДоп)
     |LEFT JOIN $Регистр.ПартииНаличие AS Рег2 ON $Рег2.Номенклатура = $Рег.Номенклатура
     |      AND $Рег2.Партия = $Рег.Партия
     |      AND $Рег2.КодОперации IN (SELECT Val FROM #КОЗакуп)  
     |
     |WHERE (CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime) BETWEEN :ДатаНачала AND :ДатаКонца)
     |      AND $Рег.КодОперации  IN (SELECT Val FROM #КО)
     |      
     |GROUP BY CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime), $Рег.Номенклатура, $Партия.ПриходныйДокумент
     |Order By CAST(LEFT(J.Date_Time_IDDoc, 8) as DateTime), $Рег.Номенклатура ";  

А смысл запроса в том что нужно выгрузить данные из один ЭС в дбф файл для CRM системы данных по продажам с вычленением дополнительных(в основном транспортных )затрат по оприходованию ТМЦ. В регистре эти затраты лежат в одной куче с основными затратами по приобретению ТМЦ (с нулевым количеством). Поэтому и нужно столько левых соединений по одному регистру.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать