Имя: Пароль:
1C
 
Суммирование по табличным частям
, ,
0 NIGHTHUNTER
 
25.08.22
04:31
У документа есть 2 табличные части. Там есть поля сумма.
Необходимо суммировать эти поля в поле в шапке документа.
В какой процедуре это правильнее делать?
1 DEVIce
 
25.08.22
04:42
ПриЗаписи
2 DEVIce
 
25.08.22
04:42
Или ПередЗаписью
3 NIGHTHUNTER
 
25.08.22
05:10
&НаКлиенте
Процедура ЛимитыСуммаСчетаПриИзменении(Элемент)
    ИтогПоСумме();
КонецПроцедуры
//
&НаКлиенте
Процедура ЗаявкиНаРасходованиеСуммаПриИзменении(Элемент)
    ИтогПоСумме();
КонецПроцедуры
//
&НаСервере
Процедура ИтогПоСумме()
    Объект.Сумма = Объект.Лимиты.Итог("СуммаСчета") + Объект.ЗаявкиНаРасходование.Итог("Сумма");
КонецПроцедуры
4 NIGHTHUNTER
 
25.08.22
05:14
(2) Сделал при изменении этих полей сумм в табличных частях и при создании на сервере.
5 DEVIce
 
25.08.22
05:16
Можно и так, если надо видеть сумму сразу при редактировании. Но если сумму достаточно просто хранить, как в типовых, то ПриЗаписи один раз.
6 GenAcid
 
25.08.22
05:38
ПриЗаписи бесполезно менять, он вызывается после записи объекта. Только ПередЗаписью или в УИ.
ПриСозданииНаСервере тоже так себе, при открытии объект будет сразу модифицирован.
7 NIGHTHUNTER
 
25.08.22
05:41
(6) В форме документа?

ПередЗаписью()
ПередЗаписьюНаСервере() ?

или в модуле документа ?
8 rphosts
 
25.08.22
05:50
(0) Зависит от того в какой момент тебе суммы нужны, если толко при сохранении документа - одно, если оперативно срауз как юзер закончил редактировать - другое.
(7) если цифири правятся только ручечками юзеров - достаточно в форме, если может быть программное изменение данных - только в модуле
9 DEVIce
 
25.08.22
05:51
(7) Я бы в форме делал, так как это информация меняющаяся интерактивно. Если делать в модуле объекта, то пересчитываться будет каждый раз при любой записи, что как-бы нафиг не нужно.
10 Bigbro
 
25.08.22
07:02
Зачем вообще лезть в записи и в объект?
Если это итог только для отображения на форме так и выводить в реквизит формы а не документа.
а при программном обращении всегда можно взять снова итоги, если требуется.
не вижу смысла плодить сущности.
я бы понял если бы мы хранили результат каких то сложных трудоемких расчетов, их нет смысла проводить каждый раз.
но сумма двух итогов по табличкам явно не тот случай.
11 DEVIce
 
25.08.22
07:59
(10) Про плодение сущностей это ты скажи 1С, у нее такой реквизит есть практически в любом документе. Ну и таки если сумму надо получать часто, запрос к реквизиту будет работать по любому быстрее чем проход по всем строкам нескольких табличных частей.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс