Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

запрос выбор из временной таблице по условию - в(выбрать)

запрос выбор из временной таблице по условию - в(выбрать)
Я
   prtx
 
18.09.18 - 16:52
товарищи. мой котелок сейчас взорвется. подскажите в чем проблема, чего я не знаю о запросах.

первый запрос не работает, а второй работает, с фигали такое происходит? это дело принципа выяснить сие чудо.

запрос 1 ---
ВЫБРАТЬ
    Склады.Ссылка КАК Ссылка
ПОМЕСТИТЬ Склады
ИЗ
    Справочник.Склады КАК Склады
ГДЕ
    Склады.Ссылка В(&Склады)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ТоварыНаПеремещение.СкладОтправитель КАК СкладОтправитель,
    ТоварыНаПеремещение.СкладПолучатель КАК СкладПолучатель,
    ТоварыНаПеремещение.Характеристика КАК Характеристика,
    ТоварыНаПеремещение.Количество
ИЗ
    &ТоварыНаПеремещение КАК ТоварыНаПеремещение
ГДЕ
    ТоварыНаПеремещение.Номенклатура = &Номенклатура
    И ТоварыНаПеремещение.СкладОтправитель В
            (ВЫБРАТЬ
                Склады.Ссылка
            ИЗ
                Склады КАК Склады)
    И ТоварыНаПеремещение.СкладПолучатель В
            (ВЫБРАТЬ
                Склады.Ссылка
            ИЗ
                Склады КАК Склады)

запрос 2 ---
ВЫБРАТЬ
    Склады.Ссылка КАК Ссылка
ПОМЕСТИТЬ Склады
ИЗ
    Справочник.Склады КАК Склады
ГДЕ
    Склады.Ссылка В(&Склады)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ТоварыНаПеремещение.СкладОтправитель КАК СкладОтправитель,
    ТоварыНаПеремещение.СкладПолучатель КАК СкладПолучатель,
    ТоварыНаПеремещение.Характеристика КАК Характеристика,
    ТоварыНаПеремещение.Количество
ИЗ
    &ТоварыНаПеремещение КАК ТоварыНаПеремещение
ГДЕ
    ТоварыНаПеремещение.Номенклатура = &Номенклатура
    И ТоварыНаПеремещение.СкладОтправитель В(&Склады)
    И ТоварыНаПеремещение.СкладПолучатель В(&Склады)

вот вы мне объясните какого черта из в запросе1 из второй таблицы выбирается кукиш, а в запросе2 из второй таблицы выбираются нужные записи? у меня уже лыжи вообще не едут...

всем спасибо.
 
 
   prtx
 
1 - 18.09.18 - 16:53
и ненужно мне писать, что во втором запросе не нужна первая часть, я и сам знаю, это для наглядности.
   prtx
 
2 - 18.09.18 - 16:58
(0) если этот метод -
(ВЫБРАТЬ Склады.Ссылка ИЗ Склады КАК Склады)
применять допустим при выборе остатков из регистра, то все отрабатывает, а если этот же метод применять к выборке из таблицы которая передается параметром, то все накрывается медным тазом.
   AllJoke
 
3 - 18.09.18 - 17:07
Таблицу параметром - во временную, а потом условие накладывать.

Типа...
ВЫБРАТЬ
    ТоварыНаПеремещение.СкладОтправитель КАК СкладОтправитель,
    ТоварыНаПеремещение.СкладПолучатель КАК СкладПолучатель,
    ТоварыНаПеремещение.Характеристика КАК Характеристика,
    ТоварыНаПеремещение.Количество
поместить ВТ_ТоварыПеремещение
ИЗ
    &ТоварыНаПеремещение КАК ТоварыНаПеремещение;

/////

Выбрать ... ИЗ ВТ_ТоварыПеремещение Где ....
   AllJoke
 
4 - 18.09.18 - 17:15
ВЫБРАТЬ
    Склады.Ссылка КАК Ссылка
ПОМЕСТИТЬ Склады
ИЗ
    Справочник.Склады КАК Склады
ГДЕ
    Склады.Ссылка В(&Склады)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ПеремещениеТоваровТовары.Ссылка КАК Ссылка,
    ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура,
    ПеремещениеТоваровТовары.Количество КАК Количество,
    ПеремещениеТоваровТовары.Ссылка.СкладОтправитель КАК СкладОтправитель,
    ПеремещениеТоваровТовары.Ссылка.СкладПолучатель КАК СкладПолучатель
ИЗ
    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ГДЕ
    ПеремещениеТоваровТовары.Ссылка = &Ссылка
    И ПеремещениеТоваровТовары.Ссылка.СкладОтправитель В
            (ВЫБРАТЬ
                Склады.Ссылка
            ИЗ
                Склады КАК Склады)
    И ПеремещениеТоваровТовары.Ссылка.СкладОтправитель В
            (ВЫБРАТЬ
                Склады.Ссылка
            ИЗ
                Склады КАК Склады)
    И ПеремещениеТоваровТовары.Номенклатура = &Номенклатура


вот это работает.
Правда тут условие на ссылку.
   prtx
 
5 - 18.09.18 - 17:19
в этой части
ПеремещениеТоваровТовары.Ссылка.СкладОтправитель
передается типа ссылка на документ или т.п. правильно?
   prtx
 
6 - 18.09.18 - 17:21
(3) это выявлено методом "проб и ошибок" или есть документация? это я к тому - в моей ситуации не работает только условие типа - в(выбрать), а условие типа - ТоварыНаПеремещение.Номенклатура = &Номенклатура, нормально отрабатывает?
   prtx
 
7 - 18.09.18 - 17:21
(6) в таких случаях
   AllJoke
 
8 - 18.09.18 - 17:21
(5) - ПеремещениеТоваровТовары.Ссылка = &Ссылка
   AllJoke
 
9 - 18.09.18 - 17:22
(6) - ТоварыНаПеремещение.Номенклатура = &Номенклатура, нормально отрабатывает? - Да.
   AllJoke
 
10 - 18.09.18 - 17:25
Моё предположение, когда берем поле из Таблицы, как параметр, запрос её не может привести к типу "Справочник.Склад", и поэтому в "запрос1" условие "выбрать СкладОтпр в......" не отрабатывает.
А в "запрос2" ты явно указываешь тип поля.
Но это просто предположение.

Повторюсь, попробовать выборку из Таблицы-параметр внести во временную и уже с временной накладывать условия.
 
 Рекламное место пустует
   Вафель
 
11 - 18.09.18 - 17:26
а смысл массив складов во временную класть?
   prtx
 
12 - 18.09.18 - 17:26
(9) спасибо. буду пробывать.
как говориться - таких приколов я еще не видел!
   Вафель
 
13 - 18.09.18 - 17:26
...
ПеремещениеТоваровТовары.Ссылка.СкладОтправитель В (&Склады)
   AllJoke
 
14 - 18.09.18 - 17:27
(11) автору так хочется видать.
   prtx
 
15 - 18.09.18 - 17:28
(11) для красоты. потом можно в этой же временной таблице наложить какие-то условия, и при этом не трогать остальные части запроса... как-то так.
   prtx
 
16 - 18.09.18 - 17:29
(13) не обратил внимания что выборка из документов. сорян.
   olegves
 
17 - 18.09.18 - 17:48
(0) у тебя главный запрос из ТЗ, поэтому тебе надо приводить типы полей запроса из ТЗ через ф-ю ВЫРАЗИТЬ и помещать рез-т этого запроса во временную таблицу, а потом уже с ней соединяться
   prtx
 
18 - 18.09.18 - 17:58
(17) ну это-то понятно чтобы потом с этой таблице работать дальше нужно поместить ее во временную таблицу, для меня просто было открытием, что условие вида в(выбрать) не работает до помещения во временную таблицу, и все это на фоне того, что условие вида - номенклатура = &номенклатура, работает...

по поводу ВЫРАЗИТЬ, наверное это излишне в данном случае т.к. после помещения во временную таблицу все условия отрабатываю.

з.ы. в таблице &ТоварыНаПеремещение, СкладОтправитель и СкладПолучатель это ссылки.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует