← Назад к вопросам

Суммирование количества строк табличной части

1.0 Junior🔥 271 комментариев
#Запросы и оптимизация#Стандарты разработки

Условие

Реализуйте цикл суммирования количества из всех строк табличной части документа.

Дано:

  • Документ с табличной частью "Товары"
  • Колонка "Количество" в табличной части

Пример

Итого = 0;
Для Каждого СтрокаТовары Из Объект.Товары Цикл
    Итого = Итого + СтрокаТовары.Количество;
КонецЦикла;
Сообщить("Всего: " + Итого);

Задание

Предложите несколько способов решения (цикл, агрегатная функция, запрос).

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Суммирование количества строк табличной части

Способ 1: Цикл (базовый, медленный)

Итого = 0;
Для Каждого Строка Из Объект.Товары Цикл
    Итого = Итого + Строка.Количество;
КонецЦикла;
Сообщить("Всего: " + Итого);

Плюсы: простой, понятный Минусы: медленный для больших таблиц

Способ 2: Функция Итого (быстрый)

Итого = Объект.Товары.Итого("Количество");
Сообщить("Всего: " + Итого);

Плюсы: быстро, одна строка Минусы: только если в памяти

Способ 3: Запрос на БД (очень быстро для больших)

Запрос = Новый Запрос();
Запрос.Текст = 
"ВЫБРАТЬ
|    СУММА(Товары.Количество) КАК ИтогоКол
|ИЗ Документ.Накладная.Товары КАК Товары
|ГДЕ Товары.Ссылка = &Документ";

Запрос.УстановитьПараметр("Документ", Объект.Ссылка);
Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий() Тогда
    Итого = Результат.ИтогоКол;
КонецЕсли;

Плюсы: работает с БД, очень быстро для больших Минусы: сложнее, требует сохранённого документа

Способ 4: Проверка со сложным условием

Итого = 0;
Для Каждого Строка Из Объект.Товары Цикл
    // Только если активна строка
    Если Строка.Активная = Истина Тогда
        Итого = Итого + Строка.Количество;
    КонецЕсли;
КонецЦикла;

Рекомендация

На форме (редактирование): используй Способ 2 (Итого()) В отчёте (уже сохранено): используй Способ 3 (запрос) В циклах с условиями: используй Способ 4 (цикл с проверкой)

Суммирование количества строк табличной части | PrepBro