Как вывести сумму по колонке в подвале табличной части документа в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке и доработке форм документов часто возникает необходимость отображать суммарные значения по числовым колонкам табличной части непосредственно в ее подвале (футере). Однако разработчики, переходящие с обычных форм на управляемые или только начинающие работать с интерфейсом платформы 1С:Предприятие 8.3, нередко сталкиваются с ситуацией, когда в подвале вместо общей суммы отображается только значение из текущей активной строки.

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

Почему в подвале выводится значение текущей строки вместо суммы

Выясним причину ошибки: если при включенном свойстве таблицы Подвал в колонке указать путь к данным строки (например, Объект.Товары.Количество), платформа связывает ячейку подвала с реквизитом текущей строки коллекции. В результате при перемещении курсора по строкам в подвале всегда отображается число из выбранной строки, а не итоговая сумма.

Кроме того, в обычном интерфейсе (обычные формы) для колонок использовался специальный флаг ОтображатьИтогиВПодвале. В управляемых формах такого свойства больше нет. На смену ему пришел механизм автоматических итоговых реквизитов коллекции формы.

Пошаговая настройка автоматического итога в управляемой форме

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

  1. Включение отображения подвала таблицы: выделим элемент формы Таблица (элемент, отображающий табличную часть), перейдем в панель свойств и установим флаг Подвал (значение Истина).
  2. Проверка типа данных колонки: убедимся, что реквизит табличной части имеет тип Число. Автоматические агрегатные свойства платформа создает только для числовых реквизитов.
  3. Настройка пути к данным подвала: перейдем в свойства нужного элемента колонки таблицы. Найдем свойство ПутьКДаннымПодвала и укажем путь к виртуальному свойству-итогу коллекции по шаблону Объект.<ИмяТабличнойЧасти>.Итог<ИмяРеквизита>.

Например, если табличная часть называется Товары, а колонка — Количество, то значение свойства ПутьКДаннымПодвала должно быть следующим:

Объект.Товары.ИтогКоличество

После такой настройки платформа автоматически рассчитывает и выводит сумму всех строк по данной колонке при любых изменениях данных в таблице без написания дополнительного программного кода.

Программный расчет итогов табличной части

Рассмотрим ситуации, когда требуется получить значение итога программно или вывести в подвал нестандартное значение (например, расчетный показатель, среднее значение или итог по виртуальной колонке, которой нет в реквизитах объекта).

Для вычисления суммы по числовой колонке на сервере или в модуле объекта используется встроенный метод коллекции табличной части Итог():


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

Вывод текста в подвал вручную через код

Если колонка не привязана напрямую к реквизиту объекта или требуется вывести форматированный текст (например, добавить наименование валюты или префикс), используем свойство элемента формы ТекстПодвала.

Создадим процедуру пересчета и вызовем ее в событиях таблицы ПриИзменении и ПослеУдаления:


&НаКлиенте
Процедура ПересчитатьИтогиПодвала()
    
    ВсегоСумма = 0;
    Для Каждого Стр Из Объект.Товары Цикл
        ВсегоСумма = ВсегоСумма + Стр.Сумма;
    КонецЦикла;
    
    Элементы.ТоварыСумма.ТекстПодвала = Формат(ВсегоСумма, "ЧДЦ=2; ЧГ=3,0") + " руб.";
    
КонецПроцедуры

Особенности и ограничения автоматического расчета

Проанализируем важные нюансы работы штатного механизма итогов в управляемом интерфейсе:

  1. Поведение при отборах: автоматический итог вида Объект.ТЧ.ИтогРеквизит рассчитывается по всей коллекции ДанныеФормыКоллекция. Если пользователь накладывает поиск или отбор на строки таблицы формы, значение в подвале останется рассчитанным по всем строкам документа.
  2. Форматирование чисел: отображение числа в подвале наследует параметры свойства Формат соответствующей колонки таблицы.
  3. Сложные выражения: если в подвале требуется отобразить не сумму, а количество заполненных строк или среднее значение, штатный ПутьКДаннымПодвала не подойдет — в таких случаях расчет реализуется через программную установку ТекстПодвала.
← На главную