Как получить сумму по всем документам таблицы

1. user1202776 15.10.19 10:27 Сейчас в теме
Как сделать так, чтобы первая исходная строка на первой строке умножалась на исходное количество первой строки и т.д, чтобы в коде получил сумму заказа.Или как сложить все строки суммы заказа,чтобы получить сумму заказа по всем документам?(сумма по всем документам=8149,88.
"Сумма заказа" считается так:
ОбластьСтрока.Параметры.СуммаЗаказаДо            = СтрокаПоДокам.ИсходнаяЦена*СтрокаПоДокам.ИсходноеКоличество ;

Сумму заказа по всем документам пытался посчитать так:
тзПоТекущемуДоку1=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
				Число=0;
				Для каждого стрПоТекущемуДоку1 из тзПоТекущемуДоку1 Цикл	
		Сумма=Число+(стрПоТекущемуДоку1.ИсходнаяЦена*стрПоТекущемуДоку1.ИсходноеКоличество);	
		КонецЦикла;

Как правильно получить сумму заказа по всем документам?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Denis_CFO 48 15.10.19 10:38 Сейчас в теме
Запрос = Новый Запрос("Выбрать Сумма(Т.СуммаДокумента) Из Документ.Заказ Как Т Где Т.Ссылка В (&МассивЗаказов) Сгруппировать По Т.Ссылка"); Запрос.УстановитьПараметр("МассивЗаказов", ТабЗаказов.Выгрузить());

ТОлько, всё равно не понятно, что автор хочет...
4. user1202776 15.10.19 10:41 Сейчас в теме
(2)хочу сложить все строки последней колонки и получить итог по всем "Сумма заказа,руб."
Прикрепленные файлы:
5. Denis_CFO 48 15.10.19 10:43 Сейчас в теме
(4) так все-равно этот отчет формируется из предварительно отобранных данных, заранее и просуммируй.
7. user1202776 15.10.19 10:45 Сейчас в теме
(5) "Сумма заказа,руб." вычитывается так:
ОбластьСтрока.Параметры.СуммаЗаказаДо            = СтрокаПоДокам.ИсходнаяЦена*СтрокаПоДокам.ИсходноеКоличество ;

Пытаюсь сделать так:
тзПоТекущемуДоку1=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
                Число=0;
                Для каждого стрПоТекущемуДоку1 из тзПоТекущемуДоку1 Цикл    
        Число=Число+(стрПоТекущемуДоку1.ИсходнаяЦена*стрПоТекущемуДоку1.ИсходноеКоличество);    
        КонецЦикла;

но получается так , как в (3)
9. wertep 23 15.10.19 10:48 Сейчас в теме
(4)
хочу сложить все строки последней колонки

При выводе строки табличного документа и накапливай сумму.

СуммаИтого = 0;
Цикл вывода строк
    ......
   Выводим СуммаЗаказа;
   СуммаИтого = СуммаИтого + СуммаЗаказа;
КонецЦикла

Выволим СуммаИтого;
12. user1202776 15.10.19 11:03 Сейчас в теме
(9)так?
Сумма= 0;
Для каждого стрПоТекущемуДоку1 из тзПоТекущемуДоку1 Цикл	
   Сумма= Сумма+ ОбластьСтрока.Параметры.СуммаЗаказаДо;
КонецЦикла;
ОбластьСтрока.Параметры.Сумма            = Сумма ;
13. user1202776 15.10.19 11:33 Сейчас в теме
(9)не понял как нужно сделать.Покажите пожалуйста на примере
14. wertep 23 15.10.19 11:48 Сейчас в теме
(13)
Покажите пожалуйста на примере

Как у тебя данные выводятся в табличный документ?
Небольшой кусок где выводятся строки с заказами.
15. user1202776 15.10.19 11:53 Сейчас в теме
(14)
СуммаЗаказаДо = 0;
Для каждого стрПоТекущемуДоку1 из тзПоТекущемуДоку1 Цикл
	тзПоТекущемуДоку1=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
   СуммаЗаказаДо = СуммаЗаказаДо + (стрПоТекущемуДоку1.ИсходнаяЦена*стрПоТекущемуДоку1.ИсходноеКоличество);
КонецЦикла;

я сделал так и показывает правильные цифры, но хотел бы знать как сложить строки без умножения
16. wertep 23 15.10.19 11:56 Сейчас в теме
(4)
хочу сложить все строки последней колонки и получить итог по всем "Сумма заказа,руб."

Код где у тебя формируется именно вот эта часть.
17. user1202776 15.10.19 12:08 Сейчас в теме
(16)
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

Если (СтрокаПоДокам.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВШтуках = Истина) Тогда  

ОбластьСтрока.Параметры.СуммаЗаказаДо            = СтрокаПоДокам.ИсходнаяЦена*СтрокаПоДокам.ИсходноеКоличество ;
	ТабДок.Вывести(ОбластьСтрока);
18. wertep 23 15.10.19 13:09 Сейчас в теме
(17)
У тебя еще это выполняется в цикле. До начала цикла инициализируешь переменную. На выходе получаешь итоговую сумму.
 СуммаИтого = 0;
НачалоЦикла

//Какой-то еще код может быть

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

Если (СтрокаПоДокам.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВШтуках = Истина) Тогда  
    ОбластьСтрока.Параметры.СуммаЗаказаДо            = СтрокаПоДокам.ИсходнаяЦена*СтрокаПоДокам.ИсходноеКоличество ;
    СуммаИтого = СуммаИтого + ОбластьСтрока.Параметры.СуммаЗаказаДо;
    ТабДок.Вывести(ОбластьСтрока);
// Тоже что-то может быть
КонецЕсли;

КонецЦикла
// Готовая СуммаИтого
Показать
3. user1202776 15.10.19 10:39 Сейчас в теме
Сейчас считает так:
первую группу документ считает правильно:891,84
Сумма второй группы документов тоже равняется 891,84, 891,84 умножает на 2 и складывает с суммой первой группы документов и получается так:891,84*2+891,84=2 675,52
Прикрепленные файлы:
6. wertep 23 15.10.19 10:43 Сейчас в теме
Как минимум проще вот так
тзПоТекущемуДоку1=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
СуммаПоДокументу = тзПоТекущемуДоку1.Итог("ИсходнаяЦена")*тзПоТекущемуДоку1.Итог("ИсходноеКоличество");


И я так понимаю должен быть еще цикл перебора самих документов.
Да косякнул.
8. Denis_CFO 48 15.10.19 10:47 Сейчас в теме
(6)
тзПоТекущемуДоку1.Итог("ИсходнаяЦена")/ КоличествоСТрок*тзПоТекущемуДоку1.Итог("ИсходноеКоличество");

Если цена одинаковая, тогда сработает.
10. user1202776 15.10.19 10:50 Сейчас в теме
(8)так тоже пробовал, цены не всегда одинаковые
11. Denis_CFO 48 15.10.19 10:51 Сейчас в теме
Оставьте свое сообщение

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