Имя: Пароль:
1C
 
Помогите с запросом
0 Jaroslavka777
 
03.10.15
12:40
Готовлю к экзамену, пишу запрос и что-то застопорилась.
Цель запроса - проверить есть ли остатки на складе.
Запрос не корректно работает, если в вирт.таб остатков вообще нет записи о каком-либо товаре(небыло кол. движений по нему пока). Строки просто нет в результата запроса. Как обойти?

ВЫБРАТЬ
    РеализацияТоваровТовары.Товар,
    СУММА(РеализацияТоваровТовары.Количество) КАК Количество
ПОМЕСТИТЬ ВТ
ИЗ
    Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
ГДЕ
    РеализацияТоваровТовары.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    РеализацияТоваровТовары.Товар
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) как рег,
     ВТ.Количество КАК док,
    ВТ.Товар КАК Товар
ИЗ
    ВТ КАК ВТ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ВТ.Товар = ТоварыНаСкладахОстатки.Товар
ГДЕ
    ТоварыНаСкладахОстатки.Склад = &Склад
1 RomanYS
 
03.10.15
12:43
"Цель запроса - проверить есть ли остатки на складе."
А зачем тогда Документ.РеализацияТоваров?
2 jsmith82
 
03.10.15
12:43
Ну, во-первых, склад в параметры вирт. таблицы надо засунуть
3 jsmith82
 
03.10.15
12:43
(1) Контроль остатков при проведении
4 jsmith82
 
03.10.15
12:44
Мля, кэпом поработал
5 RomanYS
 
03.10.15
12:44
Если нужна вся номенклатура - бери левой таблицей Справочник.Номенклатура
6 Jaroslavka777
 
03.10.15
12:44
(1) это экз. по программированию. конфигурацию сам пишешь на таких
7 Jaroslavka777
 
03.10.15
12:50
(2) Исправила, стало верно. Правильно я поняла:
Таблица вирт. остатков была получена запросом. Но в строке с этим товаром все стояло NULL. в том числе и склад. потому и условие "где" его отсекло?
8 RomanYS
 
03.10.15
12:51
(7) правильно
Условие на правую таблицу делает соединение внутренним
9 jsmith82
 
03.10.15
12:53
(7) О какая умница. Все бы начинающие 1сники такими были
10 Jaroslavka777
 
03.10.15
12:54
(8) не поняла про соединение. Объясни пожалуйста
11 Jaroslavka777
 
03.10.15
12:57
(9) :) Чистова немножко смотрела
12 RomanYS
 
03.10.15
12:58
(10) ты сама объяснила в (7)
Суть "левого" соединения - должны попасть все записи из левой таблицы. Если наложить условие на поля правую таблицу, то могут отсечься записи из левой таблицы.
13 Jaroslavka777
 
03.10.15
13:01
Всем спасибо, рррработает)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой