Имя: Пароль:
1C
1С v8
Запрос. Показать остатки по складу.
0 dva1c
 
09.09.11
09:34
Нужно вывести номенклатуру по группе, исключая определенные.
Написал:

ВЫБРАТЬ
   Номен.Родитель.Код КАК ГруппаНоменКод,
   Номен.Ссылка КАК Ссылка,
   Номен.Наименование КАК Наименование,
   УчетМПЗОстатки.КоличествоОстаток КАК Остаток
ИЗ
   Справочник.Номенклатура КАК Номен
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетМПЗ.Остатки(&ДатаОтч, ) КАК УчетМПЗОстатки
       ПО Номен.Ссылка = УчетМПЗОстатки.Номенклатура
ГДЕ
   Номен.Родитель В ИЕРАРХИИ(&Родитель)
   И Номен.ЭтоГруппа = ЛОЖЬ
   И Номен.Родитель <> "6161_2"
   И Номен.Родитель <> "5653"

УПОРЯДОЧИТЬ ПО
   Ссылка ИЕРАРХИЯ

Как правильно добавить условие по складу, чтобы показать остатки?

ГДЕ
   СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
   И УчетТарыОстаткиИОбороты.Склад = &ВыбСклад

Если добавить в существующий запрос, то будет показываться номен с остатками, а надо всю.
Заранее спасибо!
1 Wobland
 
09.09.11
09:34
у тебя родитель - строка?
2 nicxxx
 
09.09.11
09:35
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетМПЗ.Остатки(&ДатаОтч, Склад = &Склад) КАК УчетМПЗОстатки
3 butterbean
 
09.09.11
09:35
Номен.Родитель <> "6161_2"
- это что за бред??
4 dva1c
 
09.09.11
09:35
сделать строкой?
5 dva1c
 
09.09.11
09:36
(3) согласен. бред. нужно было:

И Номен.Родитель.Код <> "6161_2"
   И Номен.Родитель.Код <> "5653"
6 nicxxx
 
09.09.11
09:36
(4) сделать условие нормальное - сравнение не со строкой а с параметром хотя бы
7 Maxus43
 
09.09.11
09:37
(5) а если пробелы в конце есть? параметр задавай нормальный, а в коде НайтиПоКоду
8 dva1c
 
09.09.11
09:38
но не в этом суть.
если я делаю, как написано в (2) - это верно, но...
ЛЕВОЕ СОЕДИНЕНИЕ с регистром показывает только те, что имеют остаток.
надо всю номенклатуру.
9 Maxus43
 
09.09.11
09:39
(8) к номенклатуре левое соединение делай а не к регистру
10 Maxus43
 
09.09.11
09:39
ну или Полное соединение
11 dva1c
 
09.09.11
09:40
(7) вопрос не в этом. отлаживаю в консоли. такое ГДЕ нормально работает.
Вопрос: как вывести всю номенклатуру, а к ней подцепить остатки по складу?
12 dva1c
 
09.09.11
09:41
(9) а это как? разве не к справочнику?

ИЗ
   Справочник.Номенклатура КАК Номен
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетМПЗ.Остатки(&ДатаОтч, ) КАК УчетМПЗОстатки
       ПО Номен.Ссылка = УчетМПЗОстатки.Номенклатура
13 dva1c
 
09.09.11
09:41
(10) попробую полное )
14 dva1c
 
09.09.11
09:43
+(13) еще попробую совет в (6)
Спасибо! )
15 Maxus43
 
09.09.11
09:44
полное не подойдёт, надо ещё и в регистре отбор на номенклатуру...

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

типа так - это вся номенклатура и к ней остатки
16 nicxxx
 
09.09.11
09:44
(8) че-то ты не хрень какую-то пишешь. левое соединение в этом случае абсолютно правильное решение, не может отчет показывать только то, что есть с остатками, ты же сначала всю номенклатуру из справочника выбираешь.
может проблема в условиях на номенклатуру? вот эти:
ГДЕ
   Номен.Родитель В ИЕРАРХИИ(&Родитель)
   И Номен.ЭтоГруппа = ЛОЖЬ
   И Номен.Родитель <> "6161_2"
   И Номен.Родитель <> "5653"
17 dva1c
 
09.09.11
09:57
Сча выложу скрины, заодно уберу в ГДЕ Номен.Родитель )
18 dva1c
 
09.09.11
10:06
Вот запрос без Склада

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

УПОРЯДОЧИТЬ ПО
   Ссылка ИЕРАРХИЯ

http://i074.radikal.ru/1109/00/e49a9d826775.jpg

Запрос со складом

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

УПОРЯДОЧИТЬ ПО
   Ссылка ИЕРАРХИЯ

http://s61.radikal.ru/i173/1109/bf/acd49fc04aca.jpg
19 dva1c
 
09.09.11
10:07
+(18) для понимания того, чтобы попала вся номенклатура или не вся, ищу по слову "антрекот" в результате запроса.
20 nicxxx
 
09.09.11
10:08
ну давай, выкладывай, хотя я у себя сделал аналог твоего запроса и у меня показывает всю номенклатуру из справочника, а в столбце остатков - как и положено, число либо есть, либо его нет, если на остатках пусто
21 dva1c
 
09.09.11
10:08
(15) спасибо! пробую )
22 nicxxx
 
09.09.11
10:13
пля...
23 nicxxx
 
09.09.11
10:14
это неправильно:
ГДЕ
УчетМПЗОстатки.Склад = &ВыбСклад

как правильно будет:
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетМПЗ.Остатки(&ДатаОтч, Склад = &Склад) КАК УчетМПЗОстатки
--склад должен быть в параметрах виртуальной таблицы
24 dva1c
 
09.09.11
10:20
(23) вот это пост в масть! спасибо!
25 dva1c
 
09.09.11
10:23
(23) все работает, как надо

ВЫБРАТЬ
   Ном.Ссылка,
   Ном.Представление,
   ТоварыНаСкладахОстатки.Склад,
   ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстатки.Склад),
   ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остатки
ИЗ
   Справочник.Номенклатура КАК Ном
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетМПЗ.Остатки(&ДатаОтч,Склад = &Склад) КАК ТоварыНаСкладахОстатки
       ПО (ТоварыНаСкладахОстатки.Номенклатура = Ном.Ссылка)
26 nicxxx
 
09.09.11
10:24
внимательнее надо быть. прочитай пост (2)
27 dva1c
 
09.09.11
10:27
(26) согласен! надо быть... )
а еще вопрос.
как отфильтровать подгруппы с входящими в них элементами?

ГДЕ
   Ном.Ссылка.Родитель В ИЕРАРХИИ(&Родитель)
28 Eugeneer
 
09.09.11
10:28
(24) ипона мать. ты неуч! такие простые вещи не знать.
29 dva1c
 
09.09.11
10:28
+(27) список подготовить и засунуть его в параметр?
тех родителей, которые не нужны?
30 dva1c
 
09.09.11
10:29
(28) "...я русский бы выучил только за то..." ))
31 nicxxx
 
09.09.11
10:30
(29) как-нибудь переформулируй, а то не понятно
32 dva1c
 
09.09.11
10:30
(28) а "ипона мать" тут ни при делах
33 dva1c
 
09.09.11
10:32
(32) ок! пишу понятнее.
у меня нужный родитель в спр ном, "Готовая продукция"
внутри этой готовой продукции, есть куча папок, которые мне не нужны.
как фильтровать в запросе эти не нужные подгруппы?
34 dva1c
 
09.09.11
10:32
*(33)->(31)
35 Eugeneer
 
09.09.11
10:34
ГДЕ
   Ном.Ссылка.Родитель В ИЕРАРХИИ(&Родитель)
И Ном.Ссылка.Родитель НЕ В ИЕРАРХИИ(&СпискоПапок)
36 nicxxx
 
09.09.11
10:34
(35)а прокатит? не получится взаимоисключающих условий?
37 Eugeneer
 
09.09.11
10:35
(36) хз. тогда надо в список загонять те которые нужны.
38 Eugeneer
 
09.09.11
10:35
т.е. одно условие со списком.
39 dva1c
 
09.09.11
10:35
(35) спасибо! я в (27) примерно так и думал
(36) сча проверю )
40 nicxxx
 
09.09.11
10:36
ну да, первая мысль была - в коде писать выборку нужных элементов, а потом этот список закидывать в запрос, ну и условие "В ИЕРАРХИИ" заменить на "В"
41 dva1c
 
09.09.11
10:36
(38) понял, понял. сча проверю
42 Eugeneer
 
09.09.11
10:37
(0) а что ты вообще делаешь то ?
43 nicxxx
 
09.09.11
10:37
(35) - работает правильно, щас проверил
44 hhhh
 
09.09.11
10:38
(39) а на хрена вы вообще эти группы загнали в готовую продукцию, если они там не нужны? Может лучше уволить несколько придурков и создать наконец в справочнике номенклатура нормальные группы?
45 dva1c
 
09.09.11
10:38
(42) я!
есть сомнения? я сам не верю ))
46 nicxxx
 
09.09.11
10:39
(44) не надо идеализировать учет на предприятии.
(45) ну ты так то не гони :)
47 dva1c
 
09.09.11
10:39
(43) премного благодарен!
(44) загонял не я )) Уволить? я, к сожалению, не в силах
48 dva1c
 
09.09.11
10:41
(42) правильно прочитал пост и правильно отвечаю: пишу косолидированный отчет
(46) я не гоню, я поспешаю, не торопясь.