|
Помогите с запросом! | ☑ | ||
---|---|---|---|---|
0
EgorWonder
14.07.14
✎
11:06
|
ТабДокумент = Новый ТабличныйДокумент;
запрос = новый запрос; Запрос.УстановитьПараметр("Док", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.Ссылка, | СУММА(ТребованиеНакладнаяМатериалы.Количество) КАК Итог, | ТребованиеНакладнаяМатериалы.Количество КАК Колво |ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы |ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &Док | |СГРУППИРОВАТЬ ПО | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа, | ТребованиеНакладнаяМатериалы.Ссылка, | ТребованиеНакладнаяМатериалы.Количество | |УПОРЯДОЧИТЬ ПО | НоменклатурнаяГруппа"; рез = запрос.Выполнить().Выбрать(); ТабНГР = запрос.Выполнить().Выгрузить(); ТабНГР.Свернуть("Номенклатура","Итог"); ТабН = запрос.Выполнить().Выгрузить(); ТабН.Свернуть("НоменклатурнаяГруппа, Колво"); Макет = ПолучитьМакет("ПроизводственноеЗадание"); Область = Макет.ПолучитьОбласть("ШапкаПС|ШП"); Область.Параметры.Организация = ссылканаобъект.Организация; ТабДокумент.Вывести(Область); Область = Макет.ПолучитьОбласть("Шапка|ШП"); ТабДокумент.Вывести(Область); Для каждого строка из ТабНГР цикл Область = Макет.ПолучитьОбласть("Шапка|ном"); область.Параметры.Номенклатура = Строка.Номенклатура; ТабДокумент.Присоединить(Область); конеццикла; Для каждого строка из ТабН цикл Область = Макет.ПолучитьОбласть("НГ"); Область.Параметры.НоменклатурнаяГруппа = Строка.НоменклатурнаяГруппа; ТабДокумент.Присоединить(Область); конеццикла; Область = Макет.ПолучитьОбласть("Итого|ШП"); ТабДокумент.Вывести(Область); Для каждого стр из ТабНГР цикл Область = Макет.ПолучитьОбласть("Итого|ном"); область.Параметры.Итог = Стр.Итог; ТабДокумент.Присоединить(Область); конеццикла; Возврат ТабДокумент; Мне нужно чтобы, к примеру, получалась такая таблица: Продукция(НоменклатурнаяГруппа) Материалы(Номенклатура) Колво Прод1 Мат1 2 Прод1 Мат2 0 Прод2 Мат1 0 Прод2 Мат2 1 То есть если в какой-то продукции этот материал не используется, ставилось значение 0. |
|||
1
Господин ПЖ
14.07.14
✎
11:07
|
ам/кг
"различные" доставило... |
|||
2
palladyi
14.07.14
✎
11:07
|
используй ЕСТЬNULL
|
|||
3
Господин ПЖ
14.07.14
✎
11:09
|
>используй ЕСТЬNULL
щито? |
|||
4
palladyi
14.07.14
✎
11:10
|
>То есть если в какой-то продукции этот материал не используется, ставилось значение 0.
для этого используется функция в запросе ЕСТЬNULL |
|||
5
palladyi
14.07.14
✎
11:10
|
что не так? (3)
|
|||
6
Господин ПЖ
14.07.14
✎
11:11
|
(5) в рамках текущего запроса ЕСТЬNULL бесполезен
|
|||
7
palladyi
14.07.14
✎
11:12
|
(6) согласен, не прочитал запрос(
|
|||
8
Легат
14.07.14
✎
11:12
|
Да, пожалуй, это же не регистр ..
|
|||
9
Легат
14.07.14
✎
11:13
|
В чем проблема то?
|
|||
10
EgorWonder
14.07.14
✎
11:24
|
(9)У меня такая таблица получается
Продукция(НоменклатурнаяГруппа) Материалы(Номенклатура) Колво Прод1 Мат1 2 Прод2 Мат2 1 а я не знаю как сделать, чтобы получалась такая: Продукция(НоменклатурнаяГруппа) Материалы(Номенклатура) Колво Прод1 Мат1 2 Прод1 Мат2 0 Прод2 Мат1 0 Прод2 Мат2 1 |
|||
11
Enders
14.07.14
✎
11:25
|
(10) а у тебя что, один и тот же материал может принадлежать разным группам? Если да, то почему в примере только Прод1,Прод2, а как же Прод3,Прод4 и т.д.?)
|
|||
12
EgorWonder
14.07.14
✎
11:29
|
(11) Дак а может, в примере так для краткости написал
|
|||
13
dk
14.07.14
✎
11:32
|
а в документе что хранится? кинь пример документа
|
|||
14
Ёпрст
14.07.14
✎
11:33
|
(12) не пример, а хрень полная.. из второй таблички, первая запросм в (0) никак не получится, вообще.
|
|||
15
Ёпрст
14.07.14
✎
11:33
|
ну и группировать по количеству... это п..ц
|
|||
16
Enders
14.07.14
✎
11:33
|
(12) ну и как у тебя связана, допустим "Прод1" и "Мат2"
или "Прод2" и "Мат1"?) |
|||
17
Ёпрст
14.07.14
✎
11:34
|
Мот, тогда вообще не стОило применять группировку, не ?
|
|||
18
Enders
14.07.14
✎
11:38
|
(17) Там ещё кроме лишней группировки, переборщили с кол-вом выполнений запроса
рез = запрос.Выполнить().Выбрать();
|
|||
19
EgorWonder
14.07.14
✎
12:13
|
я конечно понимаю, что я туповат(мягко говоря)
(16) Если во всех документах разное количество номенклатурных групп и номенклатуры, как их связать? вообще мне нужно заполнить макет: Изделия (Ном) (НомГруппа) (Колво) НомГруппа заполняется вертикально, а Колво и Ном - горизонтально, дак вот, Номенклатура(Ном) должна быть вся, которая используется в документе, и если НомГруппа не использует такого товара, чтобы ставился 0. |
|||
20
EgorWonder
14.07.14
✎
12:15
|
(19) если НомГруппа не использует такого Материала, чтобы колво ставилось 0.
|
|||
21
Enders
14.07.14
✎
12:22
|
1. Сначала выбери все варианты номенклатура, номенклатурная группа. Для этого сделай полное соединение ТЧ самой к себе по истина;
2. К полученному результату присоедини ещё раз свою ТЧ по НоменклатурнаяГруппа и номенклутара. Количество в ЕСТЬNull. 3. Готово. |
|||
22
Enders
14.07.14
✎
12:23
|
+ к (21) Сначала ТЧ лучше отобрать во временную таблицу, и дальнейшие действия выполнять уже с ней.
|
|||
23
EgorWonder
14.07.14
✎
12:32
|
(21)Спасибо, сейчас попробую.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |