|   |   | 
| 
 | Помогите с запросом! | ☑ | ||
|---|---|---|---|---|
| 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)Спасибо, сейчас попробую.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |