Имя: Пароль:
1C
1С v8
Нулевые остатки номенклатуры документа
,
0 rowflag
 
05.12.12
16:06
Вот так выводит нулевые остатки
ВЫБРАТЬ
   СпрНоменклатура.Ссылка КАК Номенклатура,
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.КоличествоОстаток, "нет") КАК Количество,
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.Склад.Наименование, "нет") КАК Склад
ИЗ
   Справочник.Номенклатура КАК СпрНоменклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки
       ПО СпрНоменклатура.Ссылка = ОстаткиНаСкладахОстатки.Номенклатура.Ссылка
ГДЕ
   СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
   И (ЕСТЬNULL(ОстаткиНаСкладахОстатки.Склад.Наименование, "нет") = "нет"
           ИЛИ ОстаткиНаСкладахОстатки.Склад.Наименование = "Заправленные Филиалы")

а так нет:
ВЫБРАТЬ
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.КоличествоОстаток, "нет") КАК Количество,
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.Склад.Наименование, "нет") КАК Склад,
   КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура
ИЗ
   Документ.КАРТ_ЦО_Филиал_2.ТЧСписок КАК КАРТ_ЦО_Филиал_2ТЧСписок
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки
       ПО КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура.Ссылка = ОстаткиНаСкладахОстатки.Номенклатура.Ссылка
ГДЕ
   КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура.ЭтоГруппа = ЛОЖЬ
   И (ЕСТЬNULL(ОстаткиНаСкладахОстатки.Склад.Наименование, "нет") = "нет"
           ИЛИ ОстаткиНаСкладахОстатки.Склад.Наименование = "Заправленные Филиалы"
           ИЛИ ЕСТЬNULL(ОстаткиНаСкладахОстатки.КоличествоОстаток, "нет") = "нет")
Почему?
1 salvator
 
05.12.12
16:06
Потому что так написано
2 rowflag
 
05.12.12
16:08
Как получить нулевые остатки номенклатуры, содержащейся в ТЧ, не проводя док?
3 Reset
 
05.12.12
16:10
(20) Которых на складе нет? Соедини с остатками
4 Reset
 
05.12.12
16:11
нулевые будут
ГДЕ .количествоостаток is null
5 rowflag
 
05.12.12
16:11
(3) Надо получить остатки номенклатуры в ТЧ, тех, которых нет на складе надо получить 0.
6 salvator
 
05.12.12
16:14
За .Ссылка в соединении по рукам бить надо
7 Buster007
 
05.12.12
16:16
получаешь номенклатуру из ТЧ и соединяешь с остатками с условием где остаток равен нулл. дальше сам.
8 rowflag
 
05.12.12
16:22
(7)
ВЫБРАТЬ
   КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура
ИЗ
   Документ.КАРТ_ЦО_Филиал_2.ТЧСписок КАК КАРТ_ЦО_Филиал_2ТЧСписок
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНаСкладах КАК ОстаткиНаСкладах
       ПО КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура = ОстаткиНаСкладах.Номенклатура
ГДЕ
   ЕСТЬNULL(ОстаткиНаСкладах.Количество, 0) = 0

Ничего не выводит..
9 salvator
 
05.12.12
16:24
(8) Почитай про различие ЕСТЬNULL и ЕСТЬ NULL
10 rowflag
 
05.12.12
16:27
(9) как с ЕСТЬ NULL написать??
11 Buster007
 
05.12.12
16:28
(8) все документы соединяешь к актуальным остаткам? Оригинально)
значит у тебя действительно нет номенклатуры, у которой на текущий момент нет остатков.
12 rowflag
 
05.12.12
16:33
(у меня один документ только создан) (потом ссылку на док в условия вставлю)
13 rowflag
 
05.12.12
16:55
ВЫБРАТЬ
   КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура,
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.КоличествоОстаток, "нет") КАК Поле1
ИЗ
   Документ.КАРТ_ЦО_Филиал_2.ТЧСписок КАК КАРТ_ЦО_Филиал_2ТЧСписок
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки
       ПО КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура.Ссылка = ОстаткиНаСкладахОстатки.Номенклатура

Вот так выводит все остатки, пишет "нет", там, где их нет.
Как вывести тоже самое, только по одному складу?
14 DrShad
 
05.12.12
17:04
соединить с остатками по одному складу - это же логично
15 rowflag
 
05.12.12
17:08
(14) Тогда выводятся только остатки номенклатуры, имеющейся на  этом одном складе. А мне надо остатки всей номенклатуры на этом складе. То есть нули, если ее там нет, и остатки, если она там есть.
16 Drac0
 
05.12.12
17:11
(15) Помести остатки во временную таблицу, потом соединяй с ней.
17 Drac0
 
05.12.12
17:12
(15) или вложенный запрос делай.
18 rowflag
 
05.12.12
17:14
(17) примерно понял. Только так возможно?
19 rowflag
 
05.12.12
17:14
(решить задачу)
20 Reset
 
05.12.12
17:17
(19) в соединении в(13) дополнительное условие на склад написать
21 Reset
 
05.12.12
17:19
в (15) понял только последнее предложение
22 rowflag
 
05.12.12
17:20
(20) Если склад НЕ равен "Склад", то остаток равен нулю.
Так?
23 rowflag
 
05.12.12
17:21
(21) как с соединении доп. условие на склад написать?
24 rowflag
 
05.12.12
17:24
ВЫБРАТЬ
   КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура,
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток,
   ЕСТЬNULL(ОстаткиНаСкладахОстатки.Склад, "нет") КАК Склад
ИЗ
   Документ.КАРТ_ЦО_Филиал_2.ТЧСписок КАК КАРТ_ЦО_Филиал_2ТЧСписок
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки
       ПО (КАРТ_ЦО_Филиал_2ТЧСписок.Номенклатура = ОстаткиНаСкладахОстатки.Номенклатура
               И ОстаткиНаСкладахОстатки.Склад.Наименование = "Заправленные Филиалы")

Так выводи то что нужно! Правильно сделал?
25 rowflag
 
05.12.12
17:27
(20),(Всем) Спасибо!!