Расчет значения в подвале табличной части

1. erlsm 23.04.14 02:57 Сейчас в теме
Добрый день всем!
Прошу помочь с такой задачей: (1с 8.2) Есть табличная часть на форме обработки, в ней есть числовые графы "План", "Выполнено план","Процент выполнения плана", в строках покупатели, В подвалах первых двух граф выводятся итоги. Нужно в подвале в графы "Процент выполнения плана" вывести значение, которое рассчитывается как частное от итогов в подвалах соответствующих граф "Выполнено план"/"План" т.е. в подвале расчет должен быть по значениям самих итогов и чтобы при наложения отбора на табличную часть данные в графе "Процент выполнения плана" также рассчитывался на этот отбор. Надеюсь понятно изложил.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kimskiysanya 23.04.14 07:11 Сейчас в теме
Сталкивался с такой проблемой тоже хотел выводить в подвале не просто сумму, по моему эту проблему решить нельзя. Надо создавать реквизит формы и в процедуре при изменении нужных частей таблицы ставить обработку заполнения этого реквизита.
3. lex27119 23.04.14 07:49 Сейчас в теме
Нужно прописать событие при изменении соответствующих полей, в котором написать обработчик, где будет осуществляться расчет значения, а сумму в подвал записать вручную
4. erlsm 24.04.14 08:28 Сейчас в теме
Спасибо за ответы. Сам чувствую, что если в лоб программировать, то с описанием всех возможных событий при отборе, но поднял тему, чтобы посоветоваться может есть какой-то другой способ более красивый. Еще раз спасибо за ответы.
5. Olga12 187 24.04.14 08:56 Сейчас в теме
Приведу пример на форме есть Табличное поле Товары, у него колонка Сумма, надо показывать в подвале Сумму, с учетом отбора
1) В процедуре ПриОткрытии() формы нужно запомнить Отбор в переменную формы мОтбор и сразу ОтобразитьИнформацию() в подвале

Перем мОтбор;

Процедура ПриОткрытии()
	мОтбор = ЗначениеВСтрокуВнутр(ЭлементыФормы.Товары.ОтборСтрок);
	ОтобразитьИнформацию();
КонецПроцедуры


2) В обработчике события Табличного поля Товары ПриПолученииданных() анализировать изменился ли отбор, если да, то ОтобразитьИнформацию()

Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
	ТекущийОтбор = ЗначениеВСтрокуВнутр(ЭлементыФормы.Товары.ОтборСтрок);
	Если мОтбор <> ТекущийОтбор Тогда
	    мОтбор = ТекущийОтбор;
            ОтобразитьИнформацию();
	КонецЕсли;
КонецПроцедуры


3)И наконец сама процедура ОтобразитьИнформацию() будет выглядеть так:

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

	ЭлементыФормы.Товары.Колонки.Сумма.ТекстПодвала = Формат(лСумма,"тут фоматная строка");

КонецПроцедуры	
Показать

Сумма показана просто как пример, можно посчитать все что угодно.
dimisa; vladir; Anna_arbuz; irvin12345; KindLion; beldinskiy; user895546; usercool; Element2; SP2000; Азверин; maytuganov; dobryak@bk.ru; wolfsoft; mailrum2004; sahnoL79; +16 Ответить
6. KindLion 07.07.20 12:47 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот