|
Как совместить Спр.Склады, Спр.Номенклатура и остатки по регистру? | ☑ | ||
---|---|---|---|---|
0
Andrey_19_73
11.07.16
✎
14:41
|
Подскажите, пожалуйста.
Нужно выводить ВСЕ позиции, в т.ч. нулевые, в отчет "остатки с заказами". Сделал запрос, который это отлично делает, но надо делать в разрезе Склад/Номенклатура. Даже не представляю как это можно решить запросом. Заранее спасибо. ВЫБРАТЬ СпрНоменклатура.Ссылка, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО СпрНоменклатура.Ссылка = ЗаказыКлиентовОстатки.Номенклатура |
|||
1
saaken
11.07.16
✎
14:44
|
хоть картинку нарисуй, что мы тоже не представляли
|
|||
2
Andrey_19_73
11.07.16
✎
14:57
|
не знаю как сюда картинку приатачить. Сделал ссылкой
https://cloud.mail.ru/public/4unn/E46D7Ldky А на словах. Выводится весь список номенклатуры (2000 позиций), с нулевыми, а далее идут колонки Остатки на нач, Прих, Расх, На конец, Заказано. ================================= ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ 2 ОстН Прих Расх ОстК Заказ ТМЦ 3 ОстН Прих Расх ОстК Заказ ================================= Все красиво, но надо по каждому складу отдельно. ================================= Склад 1 ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ 2 ОстН Прих Расх ОстК Заказ ТМЦ 3 ОстН Прих Расх ОстК Заказ Склад 2 ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ 2 ОстН Прих Расх ОстК Заказ ТМЦ 3 ОстН Прих Расх ОстК Заказ Склад 3 ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ 2 ОстН Прих Расх ОстК Заказ ТМЦ 3 ОстН Прих Расх ОстК Заказ ================================= |
|||
3
Зая Бусечка
11.07.16
✎
15:05
|
У тебя ТМЦ нет. На каком складе его выводить?
|
|||
4
Andrey_19_73
11.07.16
✎
15:13
|
Как нет ТМЦ, на скриншоте видно как формируется запрос и там колонка ТМЦ.
"На каком складе" По всем, также брать список со справочника и выводить Сейчас у меня 2000 строк а должно быть 2000 * колСкладов. |
|||
5
ovrfox
11.07.16
✎
16:05
|
У тебя не выбираются Склады
Просто добавь выбор склада в запрос а также в условие соединения мезду остатками и заказами |
|||
6
ovrfox
11.07.16
✎
16:08
|
где то так:
ВЫБРАТЬ | ТоварыНаСкладахОстаткиИОбороты.Склад, | СпрНоменклатура.Ссылка, | ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, | ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, | ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход, | ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, | ЗаказыКлиентовОстатки.ЗаказаноОстаток |ИЗ | Справочник.Номенклатура КАК СпрНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты | ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки | ПО СпрНоменклатура.Ссылка = ЗаказыКлиентовОстатки.Номенклатура | И (ТоварыНаСкладахОстаткиИОбороты.Склад = ЗаказыКлиентовОстатки.Склад) |
|||
7
Andrey_19_73
11.07.16
✎
16:22
|
Да, так я делал.
Выводятся 3000 строк, все остатки по всем складам. Но нет пустых остатков, ради чего все и затевалось. |
|||
8
Andrey_19_73
11.07.16
✎
16:23
|
5 - Прости не понимаю.
|
|||
9
ovrfox
11.07.16
✎
16:23
|
Тогда в первой строчке нужно написать
ЕстьNull(ТоварыНаСкладахОстаткиИОбороты.Склад, "Склад не указан") КАК Склад |
|||
10
ovrfox
11.07.16
✎
16:25
|
Ответ (7) на какой пост?
|
|||
11
Andrey_19_73
11.07.16
✎
16:29
|
на пятый
|
|||
12
Andrey_19_73
11.07.16
✎
16:30
|
(9)
Сдалал, ничего не изменилось. 3000 записей. ВЫБРАТЬ ЕстьNull(ТоварыНаСкладахОстаткиИОбороты.Склад, "Склад не указан") КАК Склад, СпрНоменклатура.Ссылка, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО СпрНоменклатура.Ссылка = ЗаказыКлиентовОстатки.Номенклатура И (ТоварыНаСкладахОстаткиИОбороты.Склад = ЗаказыКлиентовОстатки.Склад) |
|||
13
Nuobu
11.07.16
✎
16:55
|
(12) Отборы стоят какие-то? Может, ты не весь запрос показал?
|
|||
14
Andrey_19_73
11.07.16
✎
17:15
|
Весь, я его с консоли запросов копирую, где он отрабатывает.
|
|||
15
Nuobu
11.07.16
✎
17:16
|
(14) И в консоли нету записей без "Склад не указан"?
|
|||
16
Andrey_19_73
11.07.16
✎
17:42
|
||||
17
Nuobu
11.07.16
✎
17:44
|
(16) Найди поиском строку "Склад не указан".
|
|||
18
Andrey_19_73
11.07.16
✎
18:00
|
Да, простите, не подумал
Добавил УПОРЯДОЧИТЬ ПО Склад и первые 520 из 3000 строк "Склад не указан" |
|||
19
Andrey_19_73
12.07.16
✎
07:17
|
тест оформления...
>>Да, простите, не подумал >>Добавил <code> УПОРЯДОЧИТЬ ПО Склад </code> >>и первые 520 из 3000 строк "Склад не указан" |
|||
20
Andrey_19_73
12.07.16
✎
08:48
|
Лучшего, что я добился это все склады, все товары, но нет нулевых ТМЦ. Может мне сделать вложенный запрос? Подскажите, хоть в каком направлении двигаться?
<code> ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, СпрНоменклатура.Ссылка КАК Ссылка, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО СпрНоменклатура.Ссылка = ЗаказыКлиентовОстатки.Номенклатура И (ТоварыНаСкладахОстаткиИОбороты.Склад = ЗаказыКлиентовОстатки.Склад) ГДЕ ТоварыНаСкладахОстаткиИОбороты.Склад ЕСТЬ НЕ NULL УПОРЯДОЧИТЬ ПО Склад, Ссылка </code> |
|||
21
Serg_1960
12.07.16
✎
09:03
|
В (3) автора спросили о его действиях, когда отчет по складам, а конкретной позиции номенклатуры нет на складах (от слова "совсем нет нигде", т.е остаток равен нулю) - то где именно, на каком складе такую позицию номенклатуры автор собирается показывать в отчете? Ну не показывать же такую позицию как нулевую по всем складам :(
Я достаточно подробно изложил вопрос в топике (3)? :) |
|||
22
В тылу врага
12.07.16
✎
09:09
|
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура, Склады.Ссылка КАК Склад ПОМЕСТИТЬ ВсеВарианты ИЗ Справочник.Номенклатура КАК Номенклатура, Справочник.Склады КАК Склады ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеВарианты.Номенклатура, ВсеВарианты.Склад, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ ВсеВарианты КАК ВсеВарианты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО ВсеВарианты.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ВсеВарианты.Склад = ТоварыНаСкладахОстатки.Склад |
|||
23
catena
12.07.16
✎
09:10
|
(20)
ГДЕ ТоварыНаСкладахОстаткиИОбороты.Склад ЕСТЬ НЕ NULL Как ты себе думаешь будет вести себя это условие для нулевых остатков? |
|||
24
Serg_1960
12.07.16
✎
09:11
|
Подсказываю :)
ВЫБРАТЬ ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Склад, &СкладДляНулевыхОстатков) КАК Склад, ... |
|||
25
Andrey_19_73
12.07.16
✎
09:56
|
(3) (23) В первоначальном моем запросе выводятся все позиции со справочника ТМЦ, где нет остатков будет пусто, итого в отчете 2000 строк (как и ТМЦ в спр).
Мне надо Склад 1 ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ ... ОстН Прих Расх ОстК Заказ ТМЦ 2000 ОстН Прих Расх ОстК Заказ Склад 2 ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ ... ОстН Прих Расх ОстК Заказ ТМЦ 2000 ОстН Прих Расх ОстК Заказ Склад 3 ТМЦ 1 ОстН Прих Расх ОстК Заказ ТМЦ ... ОстН Прих Расх ОстК Заказ ТМЦ 2000 ОстН Прих Расх ОстК Заказ Да, если остатков ТМЦ нет, ТМЦ будет выводиться с пустыми значениями в отчет сколько раз, сколько есть складов. На первый взгляд это кажется чушь, но так правда надо, в отчете будут стоять фильтры (все кроме этого, только этот) на группы ТМЦ и склады. |
|||
26
catena
12.07.16
✎
10:24
|
(25)Это и надо было писать в первом посте.
Пример: ВЫБРАТЬ данные.Ссылка, Склады.Ссылка КАК Склад ИЗ (ВЫБРАТЬ НоменклатураСпр.Ссылка КАК Ссылка, ПартииТоваровНаСкладахОстатки.Склад КАК Склад ИЗ Справочник.Номенклатура КАК НоменклатураСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки ПО (ПартииТоваровНаСкладахОстатки.Номенклатура = НоменклатураСпр.Ссылка) ) КАК данные ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО (ЕСТЬNULL(данные.Склад, Склады.Ссылка) = Склады.Ссылка) ИТОГИ ПО Склад |
|||
27
Andrey_19_73
12.07.16
✎
10:50
|
Вот оно, счастье:
ВЫБРАТЬ Склады.Ссылка КАК Склад, данные.Ссылка, данные.ВНаличииНачальныйОстаток, данные.ВНаличииПриход, данные.ВНаличииРасход, данные.ВНаличииКонечныйОстаток, данные.ЗаказаноОстаток ИЗ (ВЫБРАТЬ НоменклатураСпр.Ссылка КАК Ссылка, ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток ИЗ Справочник.Номенклатура КАК НоменклатураСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО (ТоварыНаСкладахОстаткиИОбороты.Номенклатура = НоменклатураСпр.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО (ЗаказыКлиентовОстатки.Номенклатура = НоменклатураСпр.Ссылка)) КАК данные ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО (ЕСТЬNULL(данные.Склад, Склады.Ссылка) = Склады.Ссылка) УПОРЯДОЧИТЬ ПО Склад, данные.Ссылка Думал уже делать цикл по складам, в нем цикл по ТМЦ и там сводный остаток :) Огромное всем спасибо. Вопрос закрыт |
|||
28
В тылу врага
12.07.16
✎
10:52
|
см (22)
|
|||
29
catena
12.07.16
✎
11:12
|
(28)В таком запросе даже номенклатура с остатком будет во все склады светиться. А ему надо только чтобы нулевая.
|
|||
30
Andrey_19_73
12.07.16
✎
13:43
|
(29) Зачем мне только нулевая, мне все нужны.
Смотришь остатки, там: Гвозди 80 2 Гвозди 90 4 Гвозди 100 1 Гвозди 110 Гвозди 120 6 и сразу понятно что провтыкал заказать. (28) Простите, я не смог ваш пример довести до ума. |
|||
31
DrZombi
гуру
12.07.16
✎
14:05
|
(0) Нулевые остатки, это как? :)
|
|||
32
DrZombi
гуру
12.07.16
✎
14:10
|
(30) А зачем вам нужны все?
Огласите полный текст задачи :) |
|||
33
DrZombi
гуру
12.07.16
✎
14:11
|
+ С таким успехом можно выводить номенклатуру для каждого склада в равнозначном списке, получая при этом остатки по нужным складам :)
|
|||
34
Andrey_19_73
12.07.16
✎
14:12
|
(31) (32) (33) В (30) я все показал.
|
|||
35
PR
12.07.16
✎
14:18
|
Мда, 34 поста обсуждения тупейшей простейшей задачи
|
|||
36
Andrey_19_73
12.07.16
✎
15:20
|
(35) "Учиться не стыдно, стыдно не учиться"
Я рано обрадовался. Итоговый запрос, рожденный в этой теме, выдает ~7700 записей в отчет. Вот он: ВЫБРАТЬ Склады.Ссылка КАК Склад, данные.Ссылка, данные.ВНаличииНачальныйОстаток, данные.ВНаличииПриход, данные.ВНаличииРасход, данные.ВНаличииКонечныйОстаток, данные.ЗаказаноОстаток ИЗ (ВЫБРАТЬ НоменклатураСпр.Ссылка КАК Ссылка, ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток ИЗ Справочник.Номенклатура КАК НоменклатураСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО (ТоварыНаСкладахОстаткиИОбороты.Номенклатура = НоменклатураСпр.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО (ЗаказыКлиентовОстатки.Номенклатура = НоменклатураСпр.Ссылка)) КАК данные ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО (ЕСТЬNULL(данные.Склад, Склады.Ссылка) = Склады.Ссылка) УПОРЯДОЧИТЬ ПО Склад, данные.Ссылка ------------------------------------- А вот такой запрос, проверочный, выдает ~20000 записей, это то мне и надо, только остатки добавить :) ВЫБРАТЬ СкладыСпр.Ссылка КАК Склад, НоменклатураСпр.Ссылка КАК Номенклатура ИЗ Справочник.Номенклатура КАК НоменклатураСпр, Справочник.Склады КАК СкладыСпр ------------------------ Я попытался пару часов сам мудрить, но победить три левых соединения не смог. Помогите еще, пожалуйста. |
|||
37
Andrey_19_73
12.07.16
✎
15:48
|
Волшебная пиндюлина в виде оскорблений помогла, спасибо всем. Думаю вопрос закрыт. Итог ~20000 записей:
ВЫБРАТЬ Склады.Ссылка КАК Склад, данные.Ссылка, данные.ВНаличииНачальныйОстаток, данные.ВНаличииПриход, данные.ВНаличииРасход, данные.ВНаличииКонечныйОстаток, данные.ЗаказаноОстаток ИЗ (ВЫБРАТЬ НоменклатураСпр.Ссылка КАК Ссылка, СкладыСпр.Ссылка КАК Склад, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток ИЗ Справочник.Номенклатура КАК НоменклатураСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО (ТоварыНаСкладахОстаткиИОбороты.Номенклатура = НоменклатураСпр.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО (ЗаказыКлиентовОстатки.Номенклатура = НоменклатураСпр.Ссылка), Справочник.Склады КАК СкладыСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты1 ПО (ТоварыНаСкладахОстаткиИОбороты1.Склад = СкладыСпр.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки1 ПО (ЗаказыКлиентовОстатки1.Склад = СкладыСпр.Ссылка) ГДЕ НоменклатураСпр.Ссылка В ИЕРАРХИИ(&ВыбТМЦ)) КАК данные ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО (ЕСТЬNULL(данные.Склад, Склады.Ссылка) = Склады.Ссылка) УПОРЯДОЧИТЬ ПО Склад, данные.Ссылка Еще раз спасибо большое. |
|||
38
Ёпрст
12.07.16
✎
15:52
|
(37) всё не читал, но зачем в тексте запроса куча ненужных соединений ?
|
|||
39
Andrey_19_73
12.07.16
✎
15:57
|
ЭпикФейл!!!
(36) Неправильно работает, выбирает то 20000 строк, но остатки у всех одинаковые. (37) Да если бы я знал :) |
|||
40
PR
12.07.16
✎
16:04
|
(37) Охренеть, первый раз мне человек в явном виде говорит спасибо за волшебный пендель.
Ради такого даже кину идею, которая витает в ветке.
|
|||
41
Andrey_19_73
12.07.16
✎
16:55
|
(40) Я так понимаю, что в СКД это не впихнешь, надо делать отчет, модуль, затем в цикле перебирать запрос и выводить в макет?
Буду пробовать. Быстро не обещаю. |
|||
42
b_ru
12.07.16
✎
17:01
|
(40) В первом запросе ошибка. Нужно (без таблицы остатков)
ВЫБРАТЬ СправочникНоменклатура.Ссылка КАК Номенклатура, СправочникСклады.Ссылка КАК Склад, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток ПОМЕСТИТЬ ДекартовоПроизведение ИЗ Справочник.Номенклатура КАК СправочникНоменклатура, Справочник.Склады КАК СправочникСклады, ; |
|||
43
3achem
12.07.16
✎
17:04
|
(41) почему не пихнёшь? что ему помешает то?
|
|||
44
Andrey_19_73
12.07.16
✎
17:36
|
(43) опыта не хватает, первый раз это буду делать.
|
|||
45
Andrey_19_73
12.07.16
✎
20:35
|
(40) (42) "Не полетела"
Простите, мне еще рано работать с временными таблицами и т.п. Целый вечер запускал Ваш пример. Чуть позже сделать с куска кода весь отчет для меня будет по силам, но пока нет. "Каждому свое". Возвращаюсь назад, к своему запросу и буду думать дальше. |
|||
46
Andrey_19_73
12.07.16
✎
21:52
|
Нарыл. В этом минималистическом запросе:
ВЫБРАТЬ Склады.Ссылка КАК Склад, данные.Ссылка, данные.ВНаличииКонечныйОстаток ИЗ (ВЫБРАТЬ НоменклатураСпр.Ссылка КАК Ссылка, ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток ИЗ Справочник.Номенклатура КАК НоменклатураСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО (ТоварыНаСкладахОстаткиИОбороты.Номенклатура = НоменклатураСпр.Ссылка) ГДЕ НоменклатураСпр.Ссылка В ИЕРАРХИИ(&ВыбТМЦ)) КАК данные ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО (ЕСТЬNULL(данные.Склад, Склады.Ссылка) = Склады.Ссылка) УПОРЯДОЧИТЬ ПО Склад, данные.Ссылка ---------------- я выбираю подгруппу справочника ТМЦ, в котором есть 20 позиций, в наличии из них только 10 и все они на одном складе. Так вот в отчет выводится 20 позиций по этому складу с остатками, а все остальные склады, сколько их там нет, выводят те 10 позиций, по которым не было остатков. Я думаю, что все дело в: ПО (ЕСТЬNULL(данные.Склад, Склады.Ссылка) = Склады.Ссылка) но как сделать не знаю. |
|||
47
PR
13.07.16
✎
01:14
|
(41) Почему не впихнешь?
|
|||
48
PR
13.07.16
✎
01:15
|
(42) А, ну да, копипастом забыл убрать, да
|
|||
49
PR
13.07.16
✎
01:19
|
(46) Что-то мне подсказывает уже, что не в коня корм, но все же, на еще раз
|
|||
50
Andrey_19_73
13.07.16
✎
08:46
|
(49) Уважаемый PR, "играю как могу". В свое оправдание скажу то, что над этой задачей сижу большую часть дня и весь вечер. Я не профи и мне по ходу ее решения приходиться многому учиться, чему я несказанно рад.
Огромное спасибо, Ваш код работает немного добавил своих полей: ВЫБРАТЬ Данные.Склад КАК Склад, Данные.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток ИЗ (ВЫБРАТЬ СправочникНоменклатура.Ссылка КАК Номенклатура, СправочникСклады.Ссылка КАК Склад ИЗ Справочник.Номенклатура КАК СправочникНоменклатура, Справочник.Склады КАК СправочникСклады ГДЕ СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&ВыбТМЦ) И СправочникСклады.Ссылка = &ВыбСкл) КАК Данные, ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты ПО Данные.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И Данные.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад, ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки ПО Данные.Номенклатура = ЗаказыКлиентовОстатки.Номенклатура И Данные.Склад = ЗаказыКлиентовОстатки.Склад УПОРЯДОЧИТЬ ПО Склад, Номенклатура Моя ошибка в "И", "И Данные.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад" Сейчас отлично работает, осталось понять, как безболезненно накладывать отбор, хошь по одному складу/ТМЦ, хошь по всем. У меня сейчас только по одному чему-то, пустое значение не проходит. Но думаю это не проблема, найду. Чем больше чего-то ищешь, тем лучше это запоминается, а когда сказали - в одну ухо залетело.... Еще раз спасибо, теперь действительно работоспособный код. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |