1. user1202776 15.10.19 10:27 Сейчас в теме

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

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

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

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

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

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

но получается так , как в (3)
9. wertep 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 15.10.19 11:48 Сейчас в теме
(13)
Покажите пожалуйста на примере

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

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

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

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

ОбластьСтрока.Параметры.СуммаЗаказаДо            = СтрокаПоДокам.ИсходнаяЦена*СтрокаПоДокам.ИсходноеКоличество ;
	ТабДок.Вывести(ОбластьСтрока);
18. wertep 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 15.10.19 10:43 Сейчас в теме
Как минимум проще вот так
тзПоТекущемуДоку1=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
СуммаПоДокументу = тзПоТекущемуДоку1.Итог("ИсходнаяЦена")*тзПоТекущемуДоку1.Итог("ИсходноеКоличество");


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

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

Вакансии

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день

Программист 1С
Красноярск
зарплата от 50 000 руб.
По совместительству

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день