| 
    
        
     
     | 
    
  | 
Запрос по остаткам | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        progaoff    
     12.11.20 
            ✎
    14:00 
 | 
         
        ПОМЕСТИТЬ ВТ_ОстаткиТоваров
 
        ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( &Период, Склад В (&МассивСкладов) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО ТоварыНаСкладахОстатки.Склад = Склады.Ссылка И ТоварыВРезервеНаСкладахОстатки.Склад = Склады.Ссылка ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &Период, Склад В (&МассивСкладов) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыВРезервеНаСкладахОстатки ПО СпрНоменклатура.Ссылка = ТоварыВРезервеНаСкладахОстатки.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(&Период, НЕ ЗаказПоставщику.Склад В (&ДальниеСклады)) КАК ЗаказыПоставщикамОстатки ПО СпрНоменклатура.Ссылка = ЗаказыПоставщикамОстатки.Номенклатура Добрый день, подскажите, есть запрос, пытаюсь соединение по складам сделать, пишет - Поле не найдено "ТоварыВРезервеНаСкладахОстатки.Склад" Что не так делаю? Заранее благодарен  | 
|||
| 
    1
    
        ДенисЧ    
     12.11.20 
            ✎
    14:05 
 | 
         
        Я тоже в приведённом запросе этого поля не нашёл...
 
        Рад, что хоть твоя 1с со мной на одной волне...  | 
|||
| 
    2
    
        lodger    
     12.11.20 
            ✎
    14:07 
 | 
         
        ну смотри.
 
        сперва к Справочник.Номенклатура приделан РегистрНакопления.ТоварыНаСкладах.Остатки а к ним Справочник.Склады при чем тут ТоварыВРезервеНаСкладахОстатки.Склад?  | 
|||
| 
    3
    
        progaoff    
     12.11.20 
            ✎
    14:10 
 | 
         
        (1) ))) Как его связать?     
         | 
|||
| 
    4
    
        ДенисЧ    
     12.11.20 
            ✎
    14:12 
 | 
         
        (3) Попробуй вот это видеоруководство
 
        https://www.youtube.com/watch?v=tJi3zi4yVWM  | 
|||
| 
    5
    
        youalex    
     12.11.20 
            ✎
    14:14 
 | 
         
        И ТоварыВРезервеНаСкладахОстатки.Склад = Склады.Ссылка
 
        у тебя на этот момент еще соединения с РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки нет , и псевдонима ТоварыВРезервеНаСкладахОстатки, соответственно тоже  | 
|||
| 
    6
    
        progaoff    
     12.11.20 
            ✎
    14:45 
 | 
         
        (5) да это я уже понял.     
         | 
|||
| 
    7
    
        progaoff    
     12.11.20 
            ✎
    14:50 
 | 
         
        Теперь бы понять как соединение сделать верно.     
         | 
|||
| 
    8
    
        youalex    
     12.11.20 
            ✎
    14:54 
 | 
         
        Для начала нужно понять, зачем тебе это соединение     
         | 
|||
| 
    9
    
        progaoff    
     12.11.20 
            ✎
    15:16 
 | 
         
        (8) В разрезе склада увидеть свободный остаток     
         | 
|||
| 
    10
    
        youalex    
     12.11.20 
            ✎
    15:28 
 | 
         
        Нулевые остатки тоже нужно видеть?     
         | 
|||
| 
    11
    
        progaoff    
     12.11.20 
            ✎
    15:35 
 | 
         
        (10) ага     
         | 
|||
| 
    12
    
        progaoff    
     12.11.20 
            ✎
    15:45 
 | 
         
        ВЫБРАТЬ
 
        СпрНоменклатура.Ссылка КАК Номенклатура, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе, ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК РезервПодРозницу, ЕСТЬNULL(ЗаказыПоставщикамОстатки.КоличествоОстаток, 0) КАК ЗаказаноПоставщикам, Склады.Ссылка КАК Склад ПОМЕСТИТЬ ВТ_ОстаткиТоваров ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( &Период, Склад В (&МассивСкладов) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО ТоварыНаСкладахОстатки.Склад = Склады.Ссылка И ТоварыНаСкладахОстатки.Склад = Склады.Ссылка ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &Период, Склад В (&МассивСкладов) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыВРезервеНаСкладахОстатки ПО СпрНоменклатура.Ссылка = ТоварыВРезервеНаСкладахОстатки.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(&Период, НЕ ЗаказПоставщику.Склад В (&ДальниеСклады)) КАК ЗаказыПоставщикамОстатки ПО СпрНоменклатура.Ссылка = ЗаказыПоставщикамОстатки.Номенклатура ГДЕ НЕ СпрНоменклатура.ПометкаУдаления И НЕ СпрНоменклатура.ЭтоГруппа И НЕ СпрНоменклатура.СтатусНеПоставляется И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаБытоваяТехника) Вот что было.  | 
|||
| 
    13
    
        youalex    
     12.11.20 
            ✎
    15:50 
 | 
         
        Тогда тебе надо кросс-джойн номенклатуры со складами, а потом уже к этой матрице Номенклатура/Склад цеплять таблицы остатков     
         | 
|||
| 
    14
    
        progaoff    
     12.11.20 
            ✎
    16:50 
 | 
         
        (13) не совсем понял     
         | 
|||
| 
    15
    
        Said_We    
     12.11.20 
            ✎
    17:05 
 | 
         
        (13) Нееее....
 
        Сначала надо в подзапрос или ВТ засунуть номенклатуру с фильтрами СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаБытоваяТехника) Далее при сборе всех остатков по всем регистрам тоже этот фильтр на номенклатуру использовать. А потом уже что-то с чем-то связывать. Но вместо трех джоинов можно использовать только один. Сначала остатки объединить и свернуть по номенклатуре.  | 
|||
| 
    16
    
        youalex    
     12.11.20 
            ✎
    17:15 
 | 
         
        (15) Так ему остатки нужны в разрезе Склад/Номенклатура, как я понял. Иначе из-за чего весь сыр-бор? )  
 
        С фильтрами - да. В ВТ лучше запихивать не Номенклатуру, а данные таблиц остатков, а к Номенклатура/Склад уже цеплять эти ВТ с остатками  | 
|||
| 
    17
    
        lodger    
     12.11.20 
            ✎
    21:00 
 | 
         
        (15) 
 
        интересно, быстрее "Сначала остатки объединить и свернуть по Склад/Номенклатура." или просто приджоинить к таблице остатков таблицу резервов? например, от запроса мне нужны те и другие цифры отдельно, а заниматься их анализом будем уже в коде.  | 
|||
| 
    18
    
        Said_We    
     13.11.20 
            ✎
    09:43 
 | 
         
        (17) Конечно отдельно так же как в (0). В чем проблема-то?     
         | 
|||
| 
    19
    
        Said_We    
     13.11.20 
            ✎
    09:45 
 | 
         
        (17) Отдельно как в (12). Склад, номенклатура и три поля с разными остатками...     
         | 
|||
| 
    20
    
        Said_We    
     13.11.20 
            ✎
    10:50 
 | 
         
        Это как суть описанного (15) в первом приближении - не проверял и писал ручками. Мог что-то "написать" :-)
 
        Не знаю я что там за дальние склады... И почему по резервам нет фильтра "В (&МассивСкладов)". Я не разбирался в логике что необходимо вытащить. Вот как в (12), только переписал. Получилось примерно так: ------------------------------------- ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Номенклатура Поместить ВТ_Номенклатура ИЗ Справочник.Номенклатура КАК СпрНоменклатура ГДЕ СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаБытоваяТехника) И НЕ СпрНоменклатура.СтатусНеПоставляется И НЕ СпрНоменклатура.ЭтоГруппа И НЕ СпрНоменклатура.ПометкаУдаления ; ВЫБРАТЬ ВложенныйЗапрос.Склад КАК Склад, ВТ_Номенклатура.Номенклатура КАК Номенклатура, ЕСТЬNULL(ВложенныйЗапрос.ОстатокНаСкладе, 0) КАК ОстатокНаСкладе, ЕСТЬNULL(ВложенныйЗапрос.РезервПодРозницу, 0) КАК РезервПодРозницу, ЕСТЬNULL(ВложенныйЗапрос.ЗаказаноПоставщикам, 0) КАК ЗаказаноПоставщикам ИЗ ВТ_Номенклатура КАК ВТ_Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВложенныйЗапрос.Склад КАК Склад, ВложенныйЗапрос.Номенклатура КАК Номенклатура, СУММА(ВложенныйЗапрос.КоличествоОстаток) КАК КоличествоОстаток, СУММА(ВложенныйЗапрос.РезервПодРозницу) КАК РезервПодРозницу, СУММА(ВложенныйЗапрос.ЗаказаноПоставщикам) КАК ЗаказаноПоставщикам ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, 0 КАК РезервПодРозницу, 0 КАК ЗаказаноПоставщикам ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки( &Период, Склад В (&МассивСкладов) И Номенклатура В (ВЫБРАТЬ т.Номенклатура ИЗ ВТ_Номенклатура КАК т) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыВРезервеНаСкладах.Склад, ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура, 0, ТоварыВРезервеНаСкладах.КоличествоОстаток, 0 ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &Период, Склад В (&МассивСкладов) И Номенклатура В (ВЫБРАТЬ т.Номенклатура ИЗ ВТ_Номенклатура КАК т) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыВРезервеНаСкладах ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыВРезервеНаСкладах.ЗаказПоставщику.Склад, ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура, 0, 0, ТоварыВРезервеНаСкладах.КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &Период, НЕ ЗаказПоставщику.Склад В (&ДальниеСклады) И Номенклатура В (ВЫБРАТЬ т.Номенклатура ИЗ ВТ_Номенклатура КАК т) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыВРезервеНаСкладах ) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Склад КАК Склад, ВложенныйЗапрос.Номенклатура ) КАК ВложенныйЗапрос ПО ВТ_Номенклатура.Номенклатура = ВложенныйЗапрос.Номенклатура  | 
|||
| 
    21
    
        Said_We    
     13.11.20 
            ✎
    10:52 
 | 
         
        Ну да в запросе по резервам лишнее условие: "И НЕ СерияНоменклатуры.БракОписан".     
         | 
|||
| 
    22
    
        Said_We    
     13.11.20 
            ✎
    10:52 
 | 
         
        В общем суть нарисовал для (0) далее осталось проверить и может что подправить.     
         | 
|||
| 
    23
    
        progaoff    
     13.11.20 
            ✎
    10:56 
 | 
         
        (22) Вот спасибо)     
         | 
|||
| 
    24
    
        Said_We    
     13.11.20 
            ✎
    11:07 
 | 
         
        (23) Проверил?     
         | 
|||
| 
    25
    
        progaoff    
     13.11.20 
            ✎
    11:17 
 | 
         
        (24) Смотрю.     
         | 
|||
| 
    26
    
        progaoff    
     13.11.20 
            ✎
    11:19 
 | 
         
        На скобку матерится, 
 
        СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Склад КАК Склад,  | 
|||
| 
    27
    
        Ненавижу 1С    
     гуру 
    13.11.20 
            ✎
    11:21 
 | 
         
        конфигурация какая хоть?     
         | 
|||
| 
    28
    
        progaoff    
     13.11.20 
            ✎
    11:22 
 | 
         
        ка 1.1     
         | 
|||
| 
    29
    
        progaoff    
     13.11.20 
            ✎
    11:33 
 | 
         
        (24) матерится из начально ЛЕВОЕ СОЕДИНЕНИЕ
 
        (ВложенныйЗапрос.Склад КАК Склад,  | 
|||
| 
    30
    
        lubitelxml    
     13.11.20 
            ✎
    11:52 
 | 
         
        (29) там "Выбрать" пропущено похоже     
         | 
|||
| 
    31
    
        progaoff    
     13.11.20 
            ✎
    11:59 
 | 
         
        (30) Это я уже понял.
 
        СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Склад КАК Склад, Дальше сюда матерится на скобку  | 
|||
| 
    32
    
        Said_We    
     13.11.20 
            ✎
    12:01 
 | 
         
        "ВложенныйЗапрос.Склад КАК Склад," в группировке нет КАК. Замени на "ВложенныйЗапрос.Склад,"     
         | 
|||
| 
    33
    
        Said_We    
     13.11.20 
            ✎
    12:15 
 | 
         
        Ещё где-то ругается?     
         | 
|||
| 
    34
    
        progaoff    
     13.11.20 
            ✎
    12:21 
 | 
         
        (33) Все, спасибо. Плохо быть по пояс деревянным))     
         | 
|||
| 
    35
    
        progaoff    
     24.11.20 
            ✎
    16:38 
 | 
         
        Блин, я конечно понимаю что туплю)) но нужен еще хелб по этой проблеме, дело в том, что запрос не выдает склады где товара нет совсем.     
         | 
|||
| 
    36
    
        lubitelxml    
     24.11.20 
            ✎
    16:40 
 | 
         
        (35) сначала выбери запросом все склады, и соедини левым твою результирующую таблицу по полю склад     
         | 
|||
| 
    37
    
        progaoff    
     24.11.20 
            ✎
    17:39 
 | 
         
        (36) пытался, не получается( все равно результат без 0     
         | 
|||
| 
    38
    
        progaoff    
     24.11.20 
            ✎
    18:14 
 | 
         
        ВЫБРАТЬ
 
        МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период, ЦеныНоменклатуры.ТипЦен КАК ТипЦен, ЦеныНоменклатуры.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВТ_ПоследниеЦены ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.ТипЦен = &БазоваяРРЦ И ЦеныНоменклатуры.Период <= &Период СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.ТипЦен, ЦеныНоменклатуры.Номенклатура ИНДЕКСИРОВАТЬ ПО Период, ТипЦен, Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ПоследниеЦены.Период КАК Период, ВТ_ПоследниеЦены.ТипЦен КАК ТипЦен, ВТ_ПоследниеЦены.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.Цена КАК Цена ПОМЕСТИТЬ ВТ_АктуальныеТоварыСЦеной ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПоследниеЦены КАК ВТ_ПоследниеЦены ПО ЦеныНоменклатуры.Период = ВТ_ПоследниеЦены.Период И ЦеныНоменклатуры.Номенклатура = ВТ_ПоследниеЦены.Номенклатура И ЦеныНоменклатуры.ТипЦен = ВТ_ПоследниеЦены.ТипЦен ГДЕ ЦеныНоменклатуры.Цена <> 0 ИНДЕКСИРОВАТЬ ПО Период, ТипЦен, Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Склады.Ссылка КАК Склад ПОМЕСТИТЬ ВТ_Склады ИЗ Справочник.Склады КАК Склады ГДЕ Склады.Ссылка В(&МассивСкладов) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Номенклатура ПОМЕСТИТЬ ВТ_Номенклатура ИЗ Справочник.Номенклатура КАК СпрНоменклатура ГДЕ СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаБытоваяТехника) И НЕ СпрНоменклатура.ЭтоГруппа И НЕ СпрНоменклатура.ПометкаУдаления ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Номенклатура.Номенклатура КАК Номенклатура, ЕСТЬNULL(ВложенныйЗапрос.ОстатокНаСкладе, 0) КАК ОстатокНаСкладе, ЕСТЬNULL(ВложенныйЗапрос.РезервПодРозницу, 0) КАК РезервПодРозницу, ЕСТЬNULL(ВложенныйЗапрос.ЗаказаноПоставщикам, 0) КАК ЗаказаноПоставщикам, ВложенныйЗапрос.Склад КАК Склад ПОМЕСТИТЬ ВТ ИЗ ВТ_Номенклатура КАК ВТ_Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВложенныйЗапрос.Склад КАК Склад, ВложенныйЗапрос.Номенклатура КАК Номенклатура, СУММА(ВложенныйЗапрос.КоличествоОстаток) КАК ОстатокНаСкладе, СУММА(ВложенныйЗапрос.РезервПодРозницу) КАК РезервПодРозницу, СУММА(ВложенныйЗапрос.ЗаказаноПоставщикам) КАК ЗаказаноПоставщикам ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, 0 КАК РезервПодРозницу, 0 КАК ЗаказаноПоставщикам ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки( &Период, Склад В (ВЫБРАТЬ д.Склад ИЗ ВТ_Склады КАК д) И Номенклатура В (ВЫБРАТЬ т.Номенклатура ИЗ ВТ_Номенклатура КАК т) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыВРезервеНаСкладах.Склад, ТоварыВРезервеНаСкладах.Номенклатура, 0, ТоварыВРезервеНаСкладах.КоличествоОстаток, 0 ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &Период, Склад В (ВЫБРАТЬ д.Склад ИЗ ВТ_Склады КАК д) И Номенклатура В (ВЫБРАТЬ т.Номенклатура ИЗ ВТ_Номенклатура КАК т) И НЕ СерияНоменклатуры.БракОписан) КАК ТоварыВРезервеНаСкладах) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Склад, ВложенныйЗапрос.Номенклатура) КАК ВложенныйЗапрос ПО ВТ_Номенклатура.Номенклатура = ВложенныйЗапрос.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_АктуальныеТоварыСЦеной.Номенклатура КАК Номенклатура, ВТ_АктуальныеТоварыСЦеной.Цена КАК Цена, ВТ.ОстатокНаСкладе КАК ОстатокНаСкладе, ВТ.РезервПодРозницу КАК РезервПодРозницу, ВТ.ЗаказаноПоставщикам КАК ЗаказаноПоставщикам, ВЫБОР КОГДА ВТ.ОстатокНаСкладе - ВТ.РезервПодРозницу > 0 ТОГДА "В наличии" КОГДА ВТ.ОстатокНаСкладе - ВТ.РезервПодРозницу <= 0 И ВТ.ЗаказаноПоставщикам > 0 ТОГДА "Ожидается" ИНАЧЕ "Под заказ" КОНЕЦ КАК Статус, ВТ_АктуальныеТоварыСЦеной.Номенклатура.Код КАК Код, ВТ.ОстатокНаСкладе - ВТ.РезервПодРозницу КАК Количество, ВТ_Склады.Склад КАК Склад ИЗ ВТ_АктуальныеТоварыСЦеной КАК ВТ_АктуальныеТоварыСЦеной ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Склады КАК ВТ_Склады ПО ВТ.Склад = ВТ_Склады.Склад ПО ВТ_АктуальныеТоварыСЦеной.Номенклатура = ВТ.Номенклатура  | 
|||
| 
    39
    
        Said_We    
     24.11.20 
            ✎
    20:53 
 | 
         
        (38) Склады основная таблица. И к ней уже всё что нужно.....     
         | 
|||
| 
    40
    
        progaoff    
     26.11.20 
            ✎
    10:50 
 | 
         
        (39) Да нифффффига не получается, уже который день мучаюсь с этим запросом     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |