|
ОбщаяСумма документа 1с8.3 УПП | ☑ | ||
---|---|---|---|---|
0
Casper211
20.04.16
✎
10:37
|
Доброе утро!
У меня есть 4 закладки на форме, в каждой есть табличное поле - тип ДЗ. Мне нужно посчитать общую сумму документа по этим таблицам. я посчитал для 1: мТекущаяСтрока.Сумма =мТекущаяСтрока.Количество*мТекущаяСтрока.Цена; СформироватьИтогиГруппДерева(ДеревоЗапросов1); ОбщаяСумма = 0; Для Каждого СтрокаДерева Из ДеревоЗапросов1.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; ЭлементыФормы.СтатусСтрока.Заголовок = строка(ОбщаяСумма) + " "+ "грн."; А как это сделать для всех? Надо считать для каждой и добавлять? Спасибо! |
|||
1
FIXXXL
20.04.16
✎
10:38
|
сделай реквизит формы
изменяй его при изменении любой ТЧ |
|||
2
Casper211
20.04.16
✎
10:41
|
(1) ОбщаяСумма - есть реквизит
просто добавлять к ней из любой ТЧ? я правильно понимаю?) |
|||
3
FIXXXL
20.04.16
✎
10:43
|
(2) добавлять, удалять
в общем пересчитывать при изменении данных ТЧ одновременно в нескольких ТЧ данные же не меняют? |
|||
4
Casper211
20.04.16
✎
10:44
|
(3) да, меняют
|
|||
5
FIXXXL
20.04.16
✎
10:45
|
(4) в одном документе одномоментно в нескольких ТЧ?
|
|||
6
Casper211
20.04.16
✎
10:48
|
(5) не одновременно. По очереди)
|
|||
7
Casper211
20.04.16
✎
10:49
|
(5) неверно прочел
|
|||
8
FIXXXL
20.04.16
✎
11:07
|
(7) для простоты можешь завести реквизит суммы для каждой ТЧ, а потом их просто суммировать, дергая одну процедуру
т.е. ПриИзменении каждой ТЧ считаешь-пишешь сумму в свой реквизит, в конце дергаешь процедуру ОбновитьОбщуюСумму |
|||
9
Casper211
20.04.16
✎
11:09
|
(5)
мТекущаяСтрока.Сумма =мТекущаяСтрока.Количество*мТекущаяСтрока.Цена; ОбщаяСумма = 0; СформироватьИтогиГруппДерева(ДеревоЗапросов1); Для Каждого СтрокаДерева Из ДеревоЗапросов1.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; СформироватьИтогиГруппДерева(ДеревоЗапросов2); Для Каждого СтрокаДерева Из ДеревоЗапросов2.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; СформироватьИтогиГруппДерева(ДеревоЗапросов3); Для Каждого СтрокаДерева Из ДеревоЗапросов3.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; СформироватьИтогиГруппДерева(ДеревоЗапросов4); Для Каждого СтрокаДерева Из ДеревоЗапросов4.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; ЭлементыФормы.СтатусСтрока.Заголовок = строка(ОбщаяСумма) + " "+ "грн."; |
|||
10
Casper211
20.04.16
✎
11:13
|
(8) а так?
Процедура ДеревоЗапросовСтраница1КоличествоПриИзменении(Элемент) мТекущаяСтрока.Сумма =мТекущаяСтрока.Количество*мТекущаяСтрока.Цена; ОбщаяСумма = 0; ОбновитьОбщуюСумму(); ЭлементыФормы.СтатусСтрока.Заголовок = строка(ОбщаяСумма); КонецПроцедуры |
|||
11
Casper211
20.04.16
✎
11:13
|
Процедура ОбновитьОбщуюСумму()Экспорт
СформироватьИтогиГруппДерева(ДеревоЗапросов1); Для Каждого СтрокаДерева Из ДеревоЗапросов1.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; СформироватьИтогиГруппДерева(ДеревоЗапросов2); Для Каждого СтрокаДерева Из ДеревоЗапросов2.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; СформироватьИтогиГруппДерева(ДеревоЗапросов3); Для Каждого СтрокаДерева Из ДеревоЗапросов3.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; СформироватьИтогиГруппДерева(ДеревоЗапросов4); Для Каждого СтрокаДерева Из ДеревоЗапросов4.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСумма = ОбщаяСумма + СумаСтроки; КонецЦикла; КонецПроцедуры |
|||
12
Casper211
20.04.16
✎
11:15
|
или можно как-то оптимизировать?
|
|||
13
FIXXXL
20.04.16
✎
11:33
|
(12) завести на каждую ТЧ свою СуммуТЧ
при изменении любой ТЧ сначала обновляешь реквизит СуммаТЧ, потом суммой всех реквизитов СуммаТЧ обновляешь ОбщаяСумма чтоб каждый раз не пересчитывать суммы по каждой ТЧ |
|||
14
Casper211
20.04.16
✎
14:11
|
(13) спасибо
|
|||
15
Casper211
20.04.16
✎
15:48
|
(13) Сделал
Процедура ДеревоЗапросовСтраница1ЦенаПриИзменении(Элемент) мТекущаяСтрока.Сумма =мТекущаяСтрока.Количество*Элемент.Значение; Если НомерДерева = "ДеревоЗапросов1" Тогда ОбщаяСуммаПричеп = 0; СформироватьИтогиГруппДерева(ДеревоЗапросов1); Для Каждого СтрокаДерева Из ДеревоЗапросов1.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСуммаПричеп = ОбщаяСуммаПричеп + СумаСтроки; КонецЦикла; КонецЕсли; Если НомерДерева = "ДеревоЗапросов2" Тогда ОбщаяСуммаКаркас= 0; СформироватьИтогиГруппДерева(ДеревоЗапросов2); Для Каждого СтрокаДерева Из ДеревоЗапросов2.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСуммаКаркас = ОбщаяСуммаКаркас + СумаСтроки; КонецЦикла; КонецЕсли; Если НомерДерева = "ДеревоЗапросов3" Тогда ОбщаяСуммаТент = 0; СформироватьИтогиГруппДерева(ДеревоЗапросов3); Для Каждого СтрокаДерева Из ДеревоЗапросов3.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСуммаТент = ОбщаяСуммаТент + СумаСтроки; КонецЦикла; КонецЕсли; Если НомерДерева = "ДеревоЗапросов4" Тогда ОбщаяСуммаАксесуари = 0; СформироватьИтогиГруппДерева(ДеревоЗапросов4); Для Каждого СтрокаДерева Из ДеревоЗапросов4.Строки Цикл СумаСтроки = СтрокаДерева.Сумма; ОбщаяСуммаАксесуари = ОбщаяСуммаАксесуари + СумаСтроки; КонецЦикла; КонецЕсли; ОбновитьОбщуюСумму(); КонецПроцедуры |
|||
16
Casper211
20.04.16
✎
15:49
|
Процедура ОбновитьОбщуюСумму()Экспорт
ОбщаяСумма = 0; ОбщаяСумма =ОбщаяСуммаПричеп + ОбщаяСуммаКаркас + ОбщаяСуммаТент + ОбщаяСуммаАксесуари; ЭлементыФормы.СтатусСтрока.Заголовок = строка(ОбщаяСумма); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |