| 
    
            
         
         | 
    
  | 
Помогите плиз с запросом | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Alexey_55    
     29.04.14 
            ✎
    11:03 
 | 
         
        Добрый день. 
 
        С консоли запросов выводится нужный результат. Если выводить в СКД то он совершенно другой. Подскажите плиз в чем проблема? ВЫБРАТЬ КОНЕЦПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) КАК ДатаРабочая ПОМЕСТИТЬ ВТ_Дни ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериодаСрОст И &КонецПериодаСрОст ИНДЕКСИРОВАТЬ ПО ДатаРабочая ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , День, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты ИНДЕКСИРОВАТЬ ПО Номенклатура, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Дни.ДатаРабочая, МАКСИМУМ(ВТ_Остатки.Период) КАК ДатаОстатка, ВТ_Остатки.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВТ_ПериодыСОстатками ИЗ ВТ_Дни КАК ВТ_Дни ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_Дни.ДатаРабочая >= ВТ_Остатки.Период СГРУППИРОВАТЬ ПО ВТ_Дни.ДатаРабочая, ВТ_Остатки.Номенклатура ИНДЕКСИРОВАТЬ ПО ДатаОстатка, Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ПериодыСОстатками.Номенклатура КАК Номенклатура, ВЫРАЗИТЬ(ВЫБОР КОГДА РАЗНОСТЬДАТ(&НачалоПериодаСрОст, &КонецПериодаСрОст, ДЕНЬ) + 1 > 0 И ВТ_Остатки.КоличествоКонечныйОстаток <> 0 ТОГДА ВТ_Остатки.КоличествоКонечныйОстаток / (РАЗНОСТЬДАТ(&НачалоПериодаСрОст, &КонецПериодаСрОст, ДЕНЬ) + 1) КОГДА РАЗНОСТЬДАТ(&НачалоПериодаСрОст, &КонецПериодаСрОст, ДЕНЬ) + 1 = 0 ТОГДА ВТ_Остатки.КоличествоКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ЧИСЛО(15, 5)) КАК СреднийОстЗаДень ИЗ ВТ_ПериодыСОстатками КАК ВТ_ПериодыСОстатками ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_ПериодыСОстатками.ДатаОстатка = ВТ_Остатки.Период И ВТ_ПериодыСОстатками.Номенклатура = ВТ_Остатки.Номенклатура  | 
|||
| 
    1
    
        mikecool    
     29.04.14 
            ✎
    11:04 
 | 
         
        в параметрах     
         | 
|||
| 
    2
    
        Господин ПЖ    
     29.04.14 
            ✎
    11:05 
 | 
         
        скд умная... выкидывает таблицы не участвующие в выборке если ей не дать по рукам     
         | 
|||
| 
    3
    
        Alexey_55    
     29.04.14 
            ✎
    11:08 
 | 
         
        (1) В параметрах виртуальной таблицы при выполнении в консоли запросов я устанавливаю периоды. Это я скопировал с СКД.     
         | 
|||
| 
    4
    
        Trainee    
     29.04.14 
            ✎
    11:09 
 | 
         
        Очень может быть, что СКД, навязало период в оборотную таблицу. 
 
        Лечится либо более аккуратной работой с параметрами. Попробуй найти консоль, кот. формирует схему СКД и посмотреть как платформа оптимизировала запрос.  | 
|||
| 
    5
    
        Alexey_55    
     29.04.14 
            ✎
    11:09 
 | 
         
        (2) Подскажи плиз как дать по рукам?     
         | 
|||
| 
    6
    
        Tateossian    
     29.04.14 
            ✎
    11:12 
 | 
         
        (5) Вот тут
 
        ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , День, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты ИНДЕКСИРОВАТЬ ПО Номенклатура, Период ; Не нужна таблица оборотов  | 
|||
| 
    7
    
        Господин ПЖ    
     29.04.14 
            ✎
    11:12 
 | 
         
        (5) добавить поле из "пропадающей" таблицы в результирующий селект, поставить в Роль - "Обязательное", если пользователю оно не нужно - навтыкать все ограничения какие есть     
         | 
|||
| 
    8
    
        Alexey_55    
     29.04.14 
            ✎
    11:18 
 | 
         
        (4) (6) (7) Благодарю, буду пробовать.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |