Общий модуль расчета суммы

Автор: | 31.03.2022

Как создать общий модуля для расчета суммы по каждой строке в табличной части документа 1С

О том как рассчитать сумму по строкам табличной части документа рассказывают на всех курсах по 1С программирования это одна из первых тем, в интернете на эту тему так же очень много информации. В своих статьях я и рассказываю про самые элементарные вещи, но этот вопрос пропустил, так как думал что это умеют делать все. Но недавно к одной из моих статей написали комментарий, в котором спросили как не просто настроить автоматический подсчет суммы по строкам а сделать это с помощью общего модуля, так как в конфигурации может быть много документов в которых необходимо это делать, можно конечно написать в каждом документе (модуле документа) один и тот же код но это не совсем правильно и профессионально.

Вот кстати эта статья «Как рассчитать сумму всех строкам табличной части«, в ней я рассказывал про то как рассчитать сумму всех строк табличной части и вывести её в отдельное поле.

Расчет суммы строк табличной части документа с помощью общего модуля

Давайте для начала посмотрим как можно настроить автоматический расчет суммы по строкам табличной части. Для примера возьму вот такой документ поступления, у него есть ТЧ в которой отображается «Количество» и «Цена» нам нужно чтобы при изменение одного из этих полей производился перерасчет суммы.

Расчет суммы по строкам в 1С

Для этого открываем в конфигураторе форму документа, выделяем поле «Количество» и создаем обработку события «При изменении».

Как рассчитать сумму в строке

В созданной процедуре пишем вот такой код.

СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
процедура для расчета суммы по строкам

Тоже самое делаем и для поля «Цена».

Расчет суммы при изменение

Все теперь в этом документе при изменение значений какого либо поля «Количество» или «Цена» автоматически будет происходить расчет суммы.

Как правило производить расчет суммы нужно не в одном документа а в нескольких, поэтому для лучше сделать общий модуль с данной процедурой и при необходимости просто вызывать её из нужного места.

Для этого в дереве конфигурации создаем общий модуль, в котором создаем процедуру для расчета суммы по строкам табличной части.

Процедура АвтоСумма(СтрокаТабличнойЧасти) Экспорт
СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
КонецПроцеду
Общий модуль для расчета суммы по строкам ТЧ

Не забываем открыть свойства общего модуля и отметить два пункта «Клиент» и «Сервер».

Настройка общего модуля

Далее в модуле формы меняем эту строчку.

СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

На эту.

ОбщийМодуль.АвтоСумма(СтрокаТабличнойЧасти);
Как вызвать процедуру из общего модуля

Тоже самое делаем и для события при изменение поля «Цена».

Общий модуля для расчета суммы по строкам ТЧ

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *