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

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 Сейчас в теме
Вы пересчитали суму макета но не пересчитали СуммаИтого, пересчитайте и будет вам счастье.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)