Имя: Пароль:
1C
1С v8
Внутреннее соединение в запросе
0 Shikolosa
 
30.08.19
10:29
Доброго дня всем! Подскажите пожалуйста что надо изменить в запросе. Если нет остатка в регистре по номенклатуре на определённом складе, номенклатура не подтягивается. А надо видеть и нулевой остаток. 1С:Предприятие 8.2 (8.2.19.130)  УПП.     

"ВЫБРАТЬ
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура,
    |    ПРЕДСТАВЛЕНИЕ(СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура),
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Количество КАК Количество,
    |    СпецификацииНоменклатурыИсходныеКомплектующие.ЕдиницаИзмерения,
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура1,
    |    ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстатки.Номенклатура) КАК НоменклатураПредставление1,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток,
    |    ТоварыНаСкладахОстатки.Склад
    |ИЗ
    |    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    |        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    |ГДЕ
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = &Ссылка
    |   И ТоварыНаСкладахОстатки.Склад= &Склад");
        
         Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Спецификация1);
         Запрос.УстановитьПараметр("Склад", ЭтотОбъект.Склад);
         Результат = Запрос.Выполнить();
1 kuzyara
 
30.08.19
10:35
Ох что щас тебе будет...
2 sqr4
 
30.08.19
10:36
фото к учетке прикрепите пожалуйста
3 SSSSS_AAAAA
 
30.08.19
10:40
(0) "что надо изменить в запросе"
Вид соединения. Подробности в любом руководство по запросам.
4 piter3
 
30.08.19
10:42
А внутреннее зачем?И если стоит где и одна спецификация,судя по параметру.И количество обернуть в ЕстьNull
5 MuxaH
 
30.08.19
10:44
И отбор по складу лучше бы в параметры виртуальной таблицы остатков :)
6 mikecool
 
30.08.19
10:46
внутреннее заменить на левое
7 Shikolosa
 
30.08.19
11:18
(1) ))))
(4) Извините, перепутала. Наверное ещё не проснулась.)) ЛЕВОЕ соединение. Не работает(.
8 RomanYS
 
30.08.19
11:23
(7) потому что
    |ГДЕ
...
    |   И ТоварыНаСкладахОстатки.Склад= &Склад"

Условие перенеси в параметры ВТ. В общем случае (не виртуальной таблицы) такое условие должно быть в условиях соединения
9 hhhh
 
30.08.19
11:31
(7) да, философски прикинь, "Если нет остатка в регистре по номенклатуре",  то что будет в твоем

|   И ТоварыНаСкладахОстатки.Склад= &Склад")    ?? ТоварыНаСкладахОстатки.Склад  пустое ведь. И будет ли оно равно &Склад ?
10 Shikolosa
 
30.08.19
13:21
(8) Спасибо! Исправила)

"ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Склад,
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток
    | ПОМЕСТИТЬ Остатки
    |ИЗ
    |        РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    |ГДЕ
    | ТоварыНаСкладахОстатки.Склад= &Склад
    | СГРУППИРОВАТЬ ПО
    |    ТоварыНаСкладахОстатки.Склад,
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток;
    | ВЫБРАТЬ
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Номенклатура,
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Количество КАК Количество,
    |    СпецификацииНоменклатурыИсходныеКомплектующие.ЕдиницаИзмерения,
    |   Остатки.Номенклатура,
    |   Остатки.КоличествоОстаток
    |ИЗ
    |    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
    |        ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
    |        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = Остатки.Номенклатура
    |ГДЕ
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = &Ссылка");
11 RomanYS
 
30.08.19
13:28
(10) эээ... под ВТ имелась в виду виртуальная таблица остатков.

|ИЗ
|        РегистрНакопления.ТоварыНаСкладах.Остатки(&ТутМожноУказатьДату, Склад = &Склад) КАК ТоварыНаСкладахОстатки

Ну и сгруппировать не надо: таблица остатков уже дает свернутые остатки по выбираемым измерениям.
Блин, там ещё и ПО ТоварыНаСкладахОстатки.КоличествоОстаток - жесть
12 hhhh
 
30.08.19
13:57
(11) это не она - это конструктор
13 RomanYS
 
30.08.19
14:00
(12) шаловливые ручки) Но конструктор комментарии между пакетами вставляет, а здесь зачищено
14 Kashey
 
30.08.19
14:01
(10) Выше правильно сказали - временная таблица с группировкой не нужна. В виртуальных таблицах уже всё сгруппировано. Просто ограничьте выборку через параметры виртуальной таблицы остатков.
15 Shikolosa
 
30.08.19
14:06
(11) Исправила)
ВЫБРАТЬ
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Номенклатура1,
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Количество КАК Количество,
    |    СпецификацииНоменклатурыИсходныеКомплектующие.ЕдиницаИзмерения,
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ТоварыНаСкладахОстатки.Склад,
    |   ТоварыНаСкладахОстатки.КоличествоОстаток
    |ИЗ
    |    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки (,Склад= &Склад) КАК ТоварыНаСкладахОстатки
    |        ПО СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    |ГДЕ
    |    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = &Ссылка");
16 Shikolosa
 
30.08.19
14:12
Большое спасибо всем! И извините за глупые вопросы))
17 piter3
 
30.08.19
14:13
С фоткой быстрее было бы
18 Kashey
 
30.08.19
14:34
(15) если нулевые остатки нужно видеть, тогда уж до кучи
|   ЕстьNull(ТоварыНаСкладахОстатки.КоличествоОстаток,0)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn