К статье
Практический материал

Разработка и Конфигурация · 10 мин

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

Как вывести подвал с итогами в табличной части 1С 8.3: настройка свойства Footer, расчёт итогов по колонкам, типичные ошибки и решения для формы документа.

Табличная часть документа в 1С:Предприятие 8.3 по умолчанию не показывает итоги: пользователь видит список строк, но сумму по колонке «Количество» или «Сумма» приходится считать в уме или искать в отдельных полях формы. Подвал (footer) таблицы решает эту задачу — внизу списка выводится строка с итоговыми значениями по выбранным колонкам, которая пересчитывается автоматически при изменении строк.

Настройка подвала выполняется в конфигураторе через свойства элемента формы «Таблица» и занимает несколько минут, если понимать, какие свойства за что отвечают. Сложности обычно возникают из-за режима управляемой формы: часть привычных по обычным формам приёмов там работает иначе, а итоги по вычисляемым колонкам требуют программного заполнения.

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

Что такое подвал таблицы и когда он нужен

Подвал — это закреплённая строка внизу таблицы формы, в которой отображаются итоговые или поясняющие значения по колонкам. Платформа умеет автоматически суммировать числовые реквизиты табличной части, поэтому для типовой задачи «показать общую сумму и количество» не требуется писать код.

Подвал уместен, когда пользователь работает с документом интерактивно: подбирает товары, меняет цены и количество — и должен сразу видеть итог. Если итог уже выведен отдельным полем на форме (например, «Всего» в шапке), подвал дублирует информацию, но часто удобнее, потому что находится непосредственно под данными.

Включение подвала в конфигураторе

Откройте конфигуратор, найдите нужный документ, перейдите на закладку «Формы» и откройте форму документа. В дереве элементов формы выделите таблицу, связанную с табличной частью (обычно она называется по имени табличной части, например «Товары»).

В палитре свойств найдите свойство «Подвал» и установите значение «Истина». После этого у каждой колонки таблицы становятся актуальными свойства, связанные с подвалом: «Текст подвала», «ПутьКДаннымПодвала», «ФорматПодвала». Сохраните конфигурацию и откройте форму в режиме предприятия, чтобы увидеть результат.

Порядок действий
  1. 1
    Откройте форму документа в конфигураторе
  2. 2
    Выделите элемент «Таблица», связанный с табличной частью
  3. 3
    Установите свойство «Подвал» = Истина
  4. 4
    Для нужных колонок задайте «Текст подвала» или путь к данным итога
  5. 5
    Обновите конфигурацию базы данных и проверьте форму в режиме предприятия

Если свойство «Подвал» включено, но строка итогов не видна, проверьте высоту таблицы и наличие полосы прокрутки: при маленькой высоте элемента подвал может визуально сливаться с последней строкой. Также убедитесь, что не переопределено условное оформление, скрывающее строку итогов.

Настройка итогов по колонкам

Для числовых реквизитов табличной части платформа может рассчитать итог автоматически. У колонки (например, «Сумма») в свойстве «ПутьКДаннымПодвала» укажите тот же реквизит, что и в «ПутьКДанным» колонки, — в подвале отобразится сумма по всем строкам. Для нечисловых колонок в «Текст подвала» можно вывести поясняющую надпись, например «Итого:» в колонке «Номенклатура».

Формат вывода итога задаётся свойством «ФорматПодвала». Если не задать формат, сумма может выводиться с количеством знаков после запятой, отличным от основных ячеек, что выглядит неаккуратно. Обычно формат подвала делают таким же, как формат самой колонки, например «ЧДЦ=2» для денежных сумм.

Итог по вычисляемой колонке

Если колонка формируется программно (например, «Сумма со скидкой» рассчитывается в обработчиках), создайте реквизит формы числового типа, укажите его в «ПутьКДаннымПодвала» колонки и пересчитывайте значение в обработчиках «ПриИзменении» строк табличной части и «ПослеУдаления». Иначе итог будет устаревать после редактирования строк.

Программное управление подвалом

Иногда подвал нужно включать динамически — например, показывать итоги только при определённом виде операции. Это делается кодом в обработчике «ПриСозданииНаСервере» или при изменении условий через обращение к элементу формы.

bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Элементы.Товары.Подвал = Истина;
	Элементы.ТоварыСумма.ТекстПодвала = "";
КонецПроцедуры

&НаКлиенте
Процедура ПересчитатьИтог()
	Итог = 0;
	Для Каждого Строка Из Объект.Товары Цикл
		Итог = Итог + Строка.СуммаСоСкидкой;
	КонецЦикла;
	ИтогСуммаСоСкидкой = Итог; // реквизит формы, привязанный к подвалу
КонецПроцедуры

При программном пересчёте следите за производительностью: обход табличной части в цикле на клиенте при тысячах строк может заметно «подвешивать» форму. Для больших таблиц пересчёт лучше выполнять на сервере или обновлять итог инкрементально — прибавлять и вычитать значение изменённой строки вместо полного обхода.

Подвал в обычных формах и динамических списках

В обычных формах (режим обычного приложения) подвал табличного поля включается аналогично — свойством «Подвал» у элемента «ТабличноеПоле», а итоги задаются через «ДанныеПодвала» колонок. Если вы поддерживаете старую конфигурацию на обычных формах, логика та же, но названия свойств отличаются.

Для динамических списков автоматический итог по колонке недоступен: платформа не суммирует произвольный запрос. Если нужен итог по списку, его рассчитывают отдельным запросом с итогами и выводят в реквизит формы, привязанный к подвалу, или используют отчёт на СКД вместо списка.

Сравнение вариантов вывода итогов

Подвал таблицы

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

Отдельное поле на форме

Подходит, когда итог один-два и его нужно видеть всегда, даже при прокрутке. Требует программного пересчёта.

Отчёт / СКД

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

Частые ошибки и их устранение

Самая распространённая проблема — подвал включён, но ячейки пустые. Причина почти всегда в том, что у колонки не заполнен ни «Текст подвала», ни «ПутьКДаннымПодвала»: включение подвала у таблицы само по себе не выводит итоги, их нужно настроить для каждой колонки отдельно.

Вторая типовая ситуация — итог не пересчитывается после редактирования строки. Это признак того, что колонка вычисляемая, а обработчики «ПриИзменении» и «ПослеУдаления» не обновляют реквизит итога. Проверьте также, что обработчики назначены именно таблице формы, а не только полю ввода колонки.

Типичные ошибки
01
Включили «Подвал» у таблицы, но не настроили колонки — строка итогов пустая
02
Для вычисляемой колонки забыли пересчитывать итог в обработчиках — итог устаревает после правки строк
03
Не задали формат подвала — итог выводится с лишними знаками после запятой
04
Ожидают автоматический итог у динамического списка — платформа его не считает, нужен отдельный запрос
05
Пересчёт итога полным обходом таблицы на клиенте при большом числе строк — форма тормозит

Проверка результата

После настройки откройте документ в режиме предприятия и выполните контрольный сценарий: добавьте две-три строки с известными значениями, измените количество в одной из них, удалите строку. Итог в подвале должен корректно меняться на каждом шаге. Сверьте значение с ручным подсчётом — расхождение указывает на ошибку в пути к данным или в логике пересчёта.

Контрольные точки

Как проверить результат

Строка итогов отображается под таблицей
Норма

Подвал виден сразу при открытии формы

Тревожный признак

Подвала нет — проверьте свойство «Подвал» у таблицы

Итог по числовой колонке
Норма

Равен сумме значений всех строк

Тревожный признак

Пусто или отличается — проверьте «ПутьКДаннымПодвала»

Реакция на изменение строки
Норма

Итог пересчитывается сразу после редактирования

Тревожный признак

Итог устарел — нет пересчёта в обработчиках

Формат вывода
Норма

Число знаков после запятой совпадает с колонкой

Тревожный признак

Лишние или обрезанные цифры — задайте «ФорматПодвала»

Если в табличной части есть группировка или иерархия, автоматический итог в подвале считается по всем строкам без учёта свёрнутых групп. Для итогов по группам используйте дерево значений с собственным расчётом или выводите итоги групп в отдельных строках.
ПЗ
Практическое замечание

Частые вопросы

Почему подвал включён, но итоги не отображаются?

Свойство «Подвал» у таблицы только показывает строку итогов. Содержимое каждой ячейки задаётся отдельно: у колонки должен быть заполнен «Текст подвала» или «ПутьКДаннымПодвала». Проверьте эти свойства у нужных колонок.

Можно ли вывести в подвале количество строк, а не сумму?

Да. Создайте реквизит формы, привяжите его к «ПутьКДаннымПодвала» колонки и присваивайте ему значение Объект.Товары.Количество() в обработчиках изменения табличной части. Автоматического счётчика строк у подвала нет.

Работает ли подвал у динамического списка?

Сама строка подвала отображается, но автоматический итог по колонке платформа для динамического списка не рассчитывает. Итог нужно получать отдельным запросом и выводить через реквизит формы, либо использовать отчёт на СКД.

Как изменить подвал без правки типовой конфигурации?

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

Итог выводится с большим числом знаков после запятой. Что делать?

Задайте у колонки свойство «ФорматПодвала», например «ЧДЦ=2» для сумм. Без явного формата платформа выводит значение с точностью реквизита, которая может отличаться от отображаемой в строках.

Пересчёт итога тормозит при большом числе строк. Как ускорить?

Откажитесь от полного обхода таблицы при каждом изменении: храните итог и корректируйте его на разницу между старым и новым значением строки. Для очень больших таблиц выполняйте пересчёт на сервере.

Итог

Что важно запомнить

Подвал табличной части включается свойством «Подвал» у таблицы формы, а итоги настраиваются для каждой колонки через «Текст подвала» и «ПутьКДаннымПодвала». Числовые реквизиты суммируются автоматически, вычисляемые колонки требуют программного пересчёта. Для типовых конфигураций доработку безопаснее выполнять через расширение.