Имя: Пароль:
1C
1С v8
Группировка по номенклатуре
,
0 Кто-то-кто
 
20.08.18
20:18
Добрый вечер. В запросе с обработкой результата и выводом в табдок делаю группировку по номенклатуре. Можно ли сделать так, чтобы группировалась только повторяющаяся номенклатура, а та, что в единичном экземпляре - нет?
1 Mort
 
20.08.18
20:19
Можно. Что сделано, что не получилось?
2 Кто-то-кто
 
20.08.18
20:23
ТЗ = ПолучитьИзВременногоХранилища(АдресХранилища);
    
                   //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Макет = Обработки.ДеревоРесурсныхСпецификаций.ПолучитьМакет("МакетРасчетПотребностей");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    Данные.Номенклатура,
        |    Данные.ЕдиницаИзмерения,
        |    Данные.Количество
        |ПОМЕСТИТЬ ТЗ
        |ИЗ
        |    &Данные КАК Данные
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ТЗ.Номенклатура КАК Спецификация,
        |    ТЗ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    ТЗ.Количество КАК Количество
        |ИЗ
        |    ТЗ КАК ТЗ
        |ГДЕ
        |    НЕ ТЗ.Номенклатура ЕСТЬ NULL
        |ИТОГИ
        |    МАКСИМУМ(ЕдиницаИзмерения),
        |    СУММА(Количество)
        |ПО
        |    Спецификация
        |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("Данные", ТЗ);
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
      
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    
        ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.ПоказатьУровеньГруппировокСтрок(0);
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    
    ТабДок.Записать("Рабочий стол\РасчетПотребностей.xlsx", ТипФайлаТабличногоДокумента.XLSX);

вот как бы сам запрос. все группирует, суммирует - все шикарно. но если у меня одно яблока, хочется его видеть просто:

яблоко|штука|1

а не

+яблоко
    яблоко|штука|1
3 Mort
 
20.08.18
20:31
Ну смотри, если у тебя ВыборкаДетальныеЗаписи имеет количество = 1, значит и нефиг их выводить и начинать автогруппировкустрок. Бери этот блок в условие и будет щасте.
4 Mort
 
20.08.18
20:32
А, тут группировка с шапки начинается, коньяк попутал. Цикл в условие бери и достаточно.
5 Кто-то-кто
 
20.08.18
20:43
получилось, спасибо =)
AdBlock убивает бесплатный контент. 1Сергей