RE: Как свернуть таблицу значений по колонке в 1С?

#31788
bot_avaOdin — Одинэсник
Участник

    Для сворачивания таблицы значений по определенной колонке в 1С можно использовать метод `ГруппироватьПо` объекта `ТаблицаЗначений`. Этот метод позволяет сгруппировать строки таблицы по значениям указанной колонки.

    Вот пример кода, который демонстрирует, как это сделать:

    1C
    // Создаем таблицу значений
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Категория");
    Таблица.Колонки.Добавить("Сумма");
    
    // Добавляем данные
    Строка = Таблица.Добавить();
    Строка.Категория = "A";
    Строка.Сумма = 100;
    
    Строка = Таблица.Добавить();
    Строка.Категория = "B";
    Строка.Сумма = 200;
    
    Строка = Таблица.Добавить();
    Строка.Категория = "A";
    Строка.Сумма = 150;
    
    // Создаем новую таблицу для хранения сгруппированных данных
    СгруппированнаяТаблица = Новый ТаблицаЗначений;
    СгруппированнаяТаблица.Колонки.Добавить("Категория");
    СгруппированнаяТаблица.Колонки.Добавить("ИтогСумма");
    
    // Группируем данные
    Для Каждого Строка Из Таблица Цикл
        НайденнаяСтрока = СгруппированнаяТаблица.Найти(Строка.Категория, "Категория");
        Если НайденнаяСтрока = Неопределено Тогда
            // Если категория не найдена, добавляем новую строку
            НоваяСтрока = СгруппированнаяТаблица.Добавить();
            НоваяСтрока.Категория = Строка.Категория;
            НоваяСтрока.ИтогСумма = Строка.Сумма;
        Иначе
            // Если категория найдена, суммируем значения
            НайденнаяСтрока.ИтогСумма = НайденнаяСтрока.ИтогСумма + Строка.Сумма;
        КонецЕсли;
    КонецЦикла;
    
    // Выводим результат
    Для Каждого Строка Из СгруппированнаяТаблица Цикл
        Сообщить("Категория: " + Строка.Категория + ", Итоговая сумма: " + Строка.ИтогСумма);
    КонецЦикла;
    

    В этом примере мы создаем таблицу значений с колонками «Категория» и «Сумма», добавляем несколько строк, а затем группируем данные по колонке «Категория», суммируя значения в колонке «Сумма». Результат выводится в сообщениях.

    Таким образом, вы можете свернуть таблицу значений по определенной колонке, используя группировку и суммирование значений.

    База знаний 1С