Итоги по колонкам и строкам в программно созданной таблице

1. login1020 133 08.11.18 09:24 Сейчас в теме
Добрый день. Запросом собираем произвольное количество Элементов, подтягиваем их числовые значения. Затем программно на форме отрисовываем таблицу.

Как программно добавить итоги по строкам и столбцам этой таблицы?

На ум приходит только после отрисовки таблицы добавить программно ещё 1 колонку с итогом по строкам, а затем строку, с итогами по колонкам.

Есть другие варианты?
По теме из базы знаний
Найденные решения
9. DmitriiKopasov 13 08.11.18 21:23 Сейчас в теме
ПутьКДаннымПодвала не надо заполнять. Просто в свойство "ТекстПодвала" (вроде так называется) помещаете итог по текущей колонке.
Типа вот так: Элементы.<ИмяКолонки>.ТекстПодвала = ТЗ.Итог(<ИмяКолонки>)
tolyan_ekb; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DmitriiKopasov 13 08.11.18 09:38 Сейчас в теме
Привет.
С итогами по строке - согласен. Просто нужна еще одна колонка.
А вот итоги по колонке можно выводить в подвале таблицы по каждой числовой колонке.
always_newbie; Pavel Rodinchenko; +2 Ответить
3. login1020 133 08.11.18 10:35 Сейчас в теме
(2) Как к нему правильно обратится или вывести? При создании документа изначально я имею только саму таблицу, без колонок и строк.
Прикрепленные файлы:
4. d.batovskiy 08.11.18 11:33 Сейчас в теме
Вы когда отрисовываете таблицу на форме, должны в свойствах таблицы указать отображение подвала и у числовой колонки указать путь к подвалу.
5. login1020 133 08.11.18 11:43 Сейчас в теме
(4) У таблицы при создании установлено свойство подвал, мне просто не понятно как туда загнать значение правильно
Мне программно создавать такое же количество реквизитов формы, что и колонок у таблицы (числовых), и перед тем как отобразить подвал, этот реквизит, который будет "ПутьКДаннымПодвала" мне нужно будет ещё и посчитать?
6. antz 08.11.18 11:50 Сейчас в теме
(5) А когда вы непрограммно создаете подвал с суммой - вам нужно считать?
7. login1020 133 08.11.18 11:51 Сейчас в теме
(6) тогда он считается сам
8. antz 08.11.18 12:00 Сейчас в теме
(7) хотя да, сам он считается только для табличных частей, для тз - надо будет считать.
9. DmitriiKopasov 13 08.11.18 21:23 Сейчас в теме
ПутьКДаннымПодвала не надо заполнять. Просто в свойство "ТекстПодвала" (вроде так называется) помещаете итог по текущей колонке.
Типа вот так: Элементы.<ИмяКолонки>.ТекстПодвала = ТЗ.Итог(<ИмяКолонки>)
tolyan_ekb; +1 Ответить
10. sandra 07.12.21 20:46 Сейчас в теме
Путь к данным подвала заполнять надо.
Например в группу с названием ГруппаТовары надо добавить элементы таблицы ТаблицаТовары с колонкой Количество и Итогом по этой колонке.

ТаблицаТовары = ЭтаФорма.Элементы.Добавить("ТаблицаТовары", Тип("ТаблицаФормы"),Элементы.ГруппаТовары);
ТаблицаТовары.ПутьКДанным 				= "ТаблицаТовары";
ТаблицаТовары.Подвал 	= Истина;

ТоварыКоличество = ЭтаФорма.Элементы.Добавить("ТоварыКоличество", Тип("ПолеФормы"),ТаблицаТовары);
ТоварыКоличество.ПутьКДанным = "ТаблицаТовары.Количество";
ТоварыКоличество.ПутьКДаннымПодвала = "ТаблицаТовары.ИтогКоличество";
Показать
user1218207; +1 Ответить
11. KillerMann 178 07.12.23 14:35 Сейчас в теме
(10) Сандра, не получится так как Вы написали из-за того, что у реквизитов добавленных программно нет данных по пути
ТаблицаТовары.ИтогКоличество

Вообще итоги присутствуют у таблиц, которые присутствуют в метаданных, если таблица принадлежит форме, а не объекту, то итогов не будет.
Поэтому вариантов всего 2:
1. Программно рассчитать итог по колонке и прописать в ТекстПодвала (Как уже многие выше подсказали).
2. Программно добавить реквизит и в ПутьКДаннымПодвала прописать путь к нему, в этот программный реквизит заталкивать рассчитанный итог по колонке.

Приведу вырезки кода,:
НовыйРеквизит = Новый РеквизитФормы(ТабРеквизит+"_"+Колонка.Имя, Колонка.ТипЗначения, , Колонка.Заголовок);
		    НовыеРеквизиты.Добавить(НовыйРеквизит);
// ... Далее:
НовыйЭлемент = Элементы.Добавить(ТабРеквизит + "_" + Имя, Тип("ПолеФормы"), Элементы[ТабЭлементФормы]);
НовыйЭлемент.ПутьКДанным = ТабРеквизит + "." + Имя;
		
// Подвал только для колонок с числом
Если ТаблицаЗначений.Колонки[Имя].ТипЗначения.СодержитТип(Тип("Число")) Тогда		
	НовыйЭлемент.ПутьКДаннымПодвала = ТабРеквизит+"_" + Имя;
КонецЕсли;
Показать
Оставьте свое сообщение

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