Корректный вывод суммы.

1. Intercititude 15.07.19 19:15 Сейчас в теме
Всем привет.
Есть запрос для вывода в печатную форму:
ВЫБРАТЬ
	1 КАК Количество,
	НФА_СписаниеМатериалы.Цена КАК Цена,
	НФА_СписаниеМатериалы.Сумма КАК Сумма,
	НФА_СписаниеМатериалы.ЕдИзм.Представление КАК Единица,
	НФА_СписаниеИнвентарныеНомера.ОбъектНФА.Наименование КАК НоменклатураПредставление,
	НФА_СписаниеИнвентарныеНомера.ИнвентарныйНомер.Код КАК НоменклатурныйНомер
ИЗ
	Документ.НФА_Списание.ИнвентарныеНомера КАК НФА_СписаниеИнвентарныеНомера
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.НФА_Списание.НФА КАК НФА_СписаниеМатериалы
		ПО НФА_СписаниеИнвентарныеНомера.ОбъектНФА = НФА_СписаниеМатериалы.ОбъектНФА
ГДЕ
	НФА_СписаниеМатериалы.Ссылка = &Ссылка
	И НФА_СписаниеИнвентарныеНомера.Ссылка = &Ссылка

УПОРЯДОЧИТЬ ПО
	НФА_СписаниеМатериалы.НомерСтроки
Показать


Как сделать чтобы сумма была 70 за одну штуку? Выводит он как за четыре. (см. скрин)
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. QuickMix 15.07.19 20:10 Сейчас в теме +0.13 $m
Возможно, что так получается из-за соединения таблиц в запросе. Заполняй Сумму в макете в коде так:
ОбластьМакета.Параметы.Сумма = Выборка.Цена * Выборка.Количество;

Такой вариант как решение, не особо вникая в проблему.
Intercititude; +1 Ответить
7. catena 110 16.07.19 11:07 Сейчас в теме
(6)
СуммаИтого = СуммаИтого + СтрокаТЧ.Сумма;


Вы сумму макета через цену пересчитали, а итого нет: СуммаИтого = СуммаИтого + СтрокаТЧ.Цена * СтрокаТЧ.Количество;

Сумма у вас такая тянется из документа, потому что в тч НФА одна строка и сумма итоговая, а вы ее на каждый инвентарник суммируете.
Intercititude; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. QuickMix 15.07.19 20:10 Сейчас в теме +0.13 $m
Возможно, что так получается из-за соединения таблиц в запросе. Заполняй Сумму в макете в коде так:
ОбластьМакета.Параметы.Сумма = Выборка.Цена * Выборка.Количество;

Такой вариант как решение, не особо вникая в проблему.
Intercititude; +1 Ответить
3. пользователь 15.07.19 21:16
Сообщение было скрыто модератором.
...
5. QuickMix 16.07.19 06:17 Сейчас в теме
(3)в Вашем случае не с выборкой работа, а с таблицей значений. Тогда сумма = СтрокаТЧ.Количество * СтрокаТЧ.Цена;
СуммаИтого обычно вот так получается:
-До цикла СуммаИтого = 0;
-В теле цикла, а именно в конце - СуммаИтого = СуммаИтого + СтрокаТЧ.Сумма;
-И уже за циклом - область.параметры.суммаитого = СуммаИтого.
6. Intercititude 16.07.19 10:57 Сейчас в теме
(5) Сделал как Вы сказали. Но общую сумму он всё равно некорректно подставляет из-за связи таблиц видимо.

Если ПризнакИспользованияИнвентарныхНомеровАртикулов Тогда
		
	Запрос 			= Новый Запрос;
	Запрос.Текст	= "ВЫБРАТЬ
	            	  |	1 КАК Количество,
	            	  |	НФА_СписаниеМатериалы.Цена КАК Цена,
	            	  |	НФА_СписаниеМатериалы.Сумма КАК Сумма,
	            	  |	НФА_СписаниеМатериалы.ЕдИзм.Представление КАК Единица,
	            	  |	НФА_СписаниеИнвентарныеНомера.ОбъектНФА.Наименование КАК НоменклатураПредставление,
	            	  |	НФА_СписаниеИнвентарныеНомера.ИнвентарныйНомер.Код КАК НоменклатурныйНомер
	            	  |ИЗ
	            	  |	Документ.НФА_Списание.ИнвентарныеНомера КАК НФА_СписаниеИнвентарныеНомера
	            	  |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.НФА_Списание.НФА КАК НФА_СписаниеМатериалы
	            	  |		ПО НФА_СписаниеИнвентарныеНомера.ОбъектНФА = НФА_СписаниеМатериалы.ОбъектНФА
	            	  |ГДЕ
	            	  |	НФА_СписаниеМатериалы.Ссылка = &Ссылка
	            	  |	И НФА_СписаниеИнвентарныеНомера.Ссылка = &Ссылка
	            	  |
	            	  |УПОРЯДОЧИТЬ ПО
	            	  |	НФА_СписаниеМатериалы.НомерСтроки";
	
	Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
	Выборка = Запрос.Выполнить().Выгрузить();
	
СуммаИтого = 0;

Для Каждого СтрокаТЧ Из Выборка Цикл 
		ОбластьМакетаСтрока.Параметры.Заполнить(СтрокаТЧ);
		ОбластьМакетаСтрока.Параметры.Цена = Окр(СтрокаТЧ.Цена,2);
		ОбластьМакетаСтрока.Параметры.Сумма = СтрокаТЧ.Цена * СтрокаТЧ.Количество;
		СуммаИтого = СуммаИтого + СтрокаТЧ.Сумма;
		ТабДок.Вывести(ОбластьМакетаСтрока);
	КонецЦикла;

	КоличествоИтого = Выборка.Итог("Количество");
	ОбластьМакетаИтого.Параметры.КоличествоИтого = КоличествоИтого;
	ОбластьМакетаИтого.Параметры.СуммаИтого      = СуммаИтого;
	ТабДок.Вывести(ОбластьМакетаИтого);

	ОбластьМакетаПодвал.Параметры.СуммаИтого         = СуммаИтого;
	ОбластьМакетаПодвал.Параметры.СуммаИтогоПрописью = ЧислоПрописью(СуммаИтого,,"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
	ТабДок.Вывести(ОбластьМакетаПодвал);
Иначе
Показать


Как мне быть ? Откуда 2520 вместо 420 непонятно.Уже всё перепробовал...
Прикрепленные файлы:
7. catena 110 16.07.19 11:07 Сейчас в теме
(6)
СуммаИтого = СуммаИтого + СтрокаТЧ.Сумма;


Вы сумму макета через цену пересчитали, а итого нет: СуммаИтого = СуммаИтого + СтрокаТЧ.Цена * СтрокаТЧ.Количество;

Сумма у вас такая тянется из документа, потому что в тч НФА одна строка и сумма итоговая, а вы ее на каждый инвентарник суммируете.
Intercititude; +1 Ответить
8. QuickMix 16.07.19 11:28 Сейчас в теме
(6)сделайте в цикле
СуммаИтого = СуммаИтого +
ОбластьМакета.Параметры.Сумма; 
4. Intercititude 15.07.19 22:05 Сейчас в теме
(2)Подскажите как вывести корректно СуммаИтого. На скрине где 1120. Он умножает общее количество на сумму(4*280) А надо общ.кол-во на цену.
У меня так:
	Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
	Выгрузка = Запрос.Выполнить().Выбрать();
	Выборка = Запрос.Выполнить().Выгрузить();
	        Пока      Выгрузка.Следующий()  Цикл        
		ОбластьМакетаСтрока.Параметры.Заполнить(Выгрузка);
		ОбластьМакетаСтрока.Параметры.Цена = Окр(Выгрузка.Цена,2);
		ОбластьМакетаСтрока.Параметры.Сумма = Выгрузка.Цена * Выгрузка.Количество;
		ТабДок.Вывести(ОбластьМакетаСтрока);
	КонецЦикла;
	
	СуммаИтого      = Выборка.Итог("Сумма");
	КоличествоИтого = Выборка.Итог("Количество");
	ОбластьМакетаИтого.Параметры.КоличествоИтого = КоличествоИтого;
	ОбластьМакетаИтого.Параметры.СуммаИтого      = СуммаИтого;
	ТабДок.Вывести(ОбластьМакетаИтого);
Показать


Если я добавлю это?:
	ОбластьМакетаИтого.Параметры.СуммаИтого      = КоличествоИтого * Окр(Выгрузка.Цена,2);


Насколько корректно вообще пересекать Выгрузку и Выборку?
9. user703966_martynyuknatalia 17.07.19 04:03 Сейчас в теме
Вы пересчитали суму макета но не пересчитали СуммаИтого, пересчитайте и будет вам счастье.
Оставьте свое сообщение

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