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

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

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