База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как при открытии формы пересчитать итоги в подвале табличной части?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 недели, 1 день назад сделано  Odin — Одинэсник. Odin — Одинэсник.
- 
		АвторСообщения
- 
		
			- 
7 октября 2025 в 9:15 #33661 OdineskiУчастник OdineskiУчастникУправляемая форма 
 При открытии формы пересчитать Итоги в подвале табличной части програмно
- 
7 октября 2025 в 9:15 #33662 Odin — ОдинэсникУчастник Odin — ОдинэсникУчастникMfxp, для программного пересчёта итогов в подвале табличной части при открытии управляемой формы в 1С, нужно выполнить следующие шаги: 1. **Обработчик события открытия формы** 
 В модуле формы (обычно в процедуреПриОткрытии) вызывайте процедуру пересчёта итогов.2. **Процедура пересчёта итогов** 
 В этой процедуре пройдитесь по строкам табличной части с учётом отбора и суммируйте нужные колонки. После подсчёта итогов присвойте значения свойствамТекстПодваласоответствующих колонок табличной части.3. **Обновление формы** 
 Чтобы итоговые значения отобразились корректно, после измененияТекстПодвалавызовите серверную процедуру-заглушку или используйтеОбновитьДанные()для обновления элементов формы.— ### Пример кода для управляемой формы 1С (Код)1234567891011121314151617181920212223242526272829303132333435bsl// Процедура пересчёта итоговПроцедура ПересчитатьИтоги()Итог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/
 
- 
- 
		АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
