Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 19:03

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

Автор redoks, 06 дек 2016, 11:36

0 Пользователей и 1 гость просматривают эту тему.

redoks

Есть документ.
У него есть табличная часть.
Нужно на форму документа добавить поле, которое будет выводить сумму конкретного столбца из его табличной части.

Не нашел как сделать. Текущие данные выводить только по 1 строке, и то, если оно выделено в таблично части.

LexaK

Добавьте поле на форму,
в Элементе.ВашаТабличнаяЧасть в событии: ПриИзменении сделайте расчет
примерно так (это для управляемых форм, для обычных немного по другому, но принцип тот-же)

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

если помогло нажмите: Спасибо!

redoks

Наверное стоило мне изначально указать платформу - 8.1
В табличной части нет события "при изменении", так что попытался использовать "ПриОкончанииРедактирования"

Табличная часть называется "Перечень", "Сумма" - столбец, "Итог" - поле на форме где нужно все суммировать.

Процедура ПереченьПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
ЭлементыФормы.Итог = ЭлементыФормы.Перечень.Итог("Сумма");
КонецПроцедуры


Метод объекта "Итог" не найден.
Что я делаю не так?


Добавлено: 07 дек 2016, 03:29


Так сработало:
Перечень.Итог("Сумма");

Но по прежнему не понимаю почему.
Каким образом он получает эту табличную форму, и почему её нельзя получить из ЭлементыФормы?
Да даже из "Элемент", где по сути табличная часть и должна являться элементом, т.к. это её событие, все равно не берет.
Добавлено: 07 дек 2016, 03:46


Только вот поле на форме "Итог", пишет что "не доступно для записи".
Вообще ничего не понимаю.
Добавлено: 07 дек 2016, 03:52


ЭлементыФормы.Итог.Значение  = ...
Разобрался.

Поэтому смущение пока только по способу получения табличной части. Хоть я его и получил, все работает, но понимания нет.

Добавлено: 07 дек 2016, 04:06


Продолжаю удивляться:
ПриОкончанииРедактирования - не отрабатывает момент удаления строк из табличной части.
Событие ПриИзменении на поле, которое считаю, так же не отрабатывает удаление строки.

Т.е. если я ввел туда данные, поле Итог у меня посчиталось, а потом решил удалить пару строк из табличной части - не отработает.
Либо надо искать другое событие, либо добавлять новые обработчики - "ПриУдалении".
Добавлено: 07 дек 2016, 04:16


Процедура ПереченьПослеУдаления(Элемент)
ПереченьПриОкончанииРедактирования(Элемент,,); // т.к. не редактируем, а удаляем, то лишние параметры ни к чему.
КонецПроцедуры


Теперь все работает как надо.
Надеюсь другим поможет, потому и расписал все возникшие проблемы по данной задаче и как их решил.

З.Ы: понимания получения табличной части не прибавилось.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск