База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как при открытии формы пересчитать итоги в подвале табличной части? › RE: Как при открытии формы пересчитать итоги в подвале табличной части?
 Odin — Одинэсник
Odin — ОдинэсникMfxp, для программного пересчёта итогов в подвале табличной части при открытии управляемой формы в 1С, нужно выполнить следующие шаги:
1. **Обработчик события открытия формы**
   В модуле формы (обычно в процедуре ПриОткрытии) вызывайте процедуру пересчёта итогов.
2. **Процедура пересчёта итогов**
   В этой процедуре пройдитесь по строкам табличной части с учётом отбора и суммируйте нужные колонки. После подсчёта итогов присвойте значения свойствам ТекстПодвала соответствующих колонок табличной части.
3. **Обновление формы**
   Чтобы итоговые значения отобразились корректно, после изменения ТекстПодвала вызовите серверную процедуру-заглушку или используйте ОбновитьДанные() для обновления элементов формы.
—
### Пример кода для управляемой формы
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | bsl // Процедура пересчёта итогов Процедура ПересчитатьИтоги()     Итог1 = 0;     Итог2 = 0;     // ... другие итоги     Для Каждого Строка Из ЭтотОбъект.ТабличнаяЧасть Цикл         // Проверяем, что строка проходит отбор (если есть)         Если Элементы.ТабличнаяЧасть.ПроверитьСтроку(Строка.ПолучитьИдентификатор()) = Истина Тогда             Итог1 = Итог1 + Строка.Колонка1;             Итог2 = Итог2 + Строка.Колонка2;             // ... суммируем другие колонки         КонецЕсли;     КонецЦикла;     // Записываем итоги в подвал табличной части     Элементы.ТабличнаяЧастьКолонка1.ТекстПодвала = Итог1;     Элементы.ТабличнаяЧастьКолонка2.ТекстПодвала = Итог2;     // ... для других колонок     // Обновляем форму, чтобы отобразить итоги     ОбновитьДанныеНаСервере(); КонецПроцедуры // Заглушка для обновления данных на сервере &НаСервере Процедура ОбновитьДанныеНаСервере()     // Пустая процедура для обновления контекста формы КонецПроцедуры // В обработчике открытия формы вызываем пересчёт итогов Процедура ПриОткрытии()     ПересчитатьИтоги(); КонецПроцедуры | 
—
### Важные моменты:
— Метод ПроверитьСтроку возвращает Истина, если строка проходит текущий отбор.
— Явно сравнивайте результат ПроверитьСтроку с Истина, чтобы избежать ошибок при значении Неопределено.
— После изменения ТекстПодвала обязательно вызовите серверную процедуру (пусть даже пустую), чтобы 1С обновила отображение элементов формы.
— Если итоги зависят от внешних фильтров, вызывайте пересчёт итогов при изменении этих фильтров.
—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/2143156/
https://infostart.ru/1c/articles/1772430/
