Отображение итогов в подвале табличной части — одна из самых частых задач при разработке интерфейсов в 1С — для этого есть вывод итоговых сумм в форме списка заказов. В зависимости от того, используете ли вы обычные или управляемые формы, подходы к решению этой задачи будут существенно различаться. Давайте разберем по шагам, как настроить отображение сумм, количеств и других агрегатных значений.
В обычном приложении платформа предоставляет инструменты для автоматического вывода итогов, если данные привязаны к табличной части реквизита документа или справочника.
ТабличногоПоля и установите флажок Подвал.КолонкиТаблицы) и установите флажок ОтображатьИтогиВПодвале.Если данные не являются реквизитами документа или вам необходимо учитывать только отфильтрованные строки, автоматический механизм может не подойти. В таком случае воспользуемся программным подходом.
Рассмотрим пример расчета суммы с учетом отборов табличного поля (реализовать алгоритм поможет консоль кода с ИИ-помощником (удобно через ИИ-помощник для разработки кода 1С)):
Процедура ПосчитатьИтогиНажатие(Элемент)
ОбъемПродукцииВсего = 0;
Для Каждого Строка Из продажиноменклатуры Цикл
Если ЭлементыФормы.Продажи.ПроверитьСтроку(Строка) Тогда
ОбъемПродукцииВсего = ОбъемПродукцииВсего + Строка.ОбъемПродукции;
КонецЕсли;
КонецЦикла;
ЭлементыФормы.Продажи.Колонки["ОбъемПродукции"].ТекстПодвала = ОбъемПродукцииВсего;
КонецПроцедуры
Метод ПроверитьСтроку() позволяет определить, попадает ли конкретная строка под текущие фильтры пользователя, что критически важно для корректного отображения итогов в реальном времени. См. также генератор форматированной строки.
В управляемых формах процесс стал более декларативным. Здесь мы практически не пишем код для простых случаев, используя свойства элементов формы.
Таблицу. В палитре свойств включите свойство Подвал.ИтогСумма.Этот метод является наиболее предпочтительным, так как платформа самостоятельно пересчитывает значения при добавлении или изменении строк в таблице.
Иногда возникают ситуации, когда стандартные возможности неактивны. Проанализируем типичные сложности:
ДинамическийСписок, стандартная настройка ПутьКДаннымПодвала может быть недоступна. В этом случае необходимо использовать программное получение итогов через запрос к базе данных и вывод результата в элемент управления типа Надпись, расположенный под таблицей — ускоряют процесс инструменты разработчика и консоль кода.ПриПолученииДанных или ПриИзменении, чтобы принудительно пересчитывать значение и присваивать его свойству ТекстПодвала элемента управления.Помните, что для получения суммы всех строк без учета отбора можно использовать метод Итог():
ИтогПоСумме = РасходПоВалу.Итог("СуммаКраски");
Используя эти методы, вы сможете гибко настраивать отображение любых данных в подвалах таблиц, делая интерфейс программы удобным и информативным для пользователя. Всегда отдавайте предпочтение стандартным свойствам формы, и только в случае сложной логики фильтрации или вычислений прибегайте к программному управлению подвалом.