Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 сен 2021, 15:58

Расчет общей массы

Автор Ann_, 01 сен 2020, 10:01

0 Пользователей и 1 гость просматривают эту тему.

Ann_

Здравствуйте! Хочу посчитать общую массу брутто, но никак не получается. код вроде бы считает, но выводит сумму в несколько раз больше чем есть на самом деле.
ВесБрутто = 0;
    для каждого стр из СсылкаНаОбъект.Товары цикл
       Если  стр.Упаковка.Числитель > 1 тогда
          весбрутто = весбрутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество + вес;
       Иначе
          весбрутто = весбрутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество;
       КонецЕсли;
          конеццикла;
    ОбластьПодвала.параметры.ИтогоНеттоСУпаковкой = ВесБрутто;



LexaK

а причем здесь ваш алгоритм и выделенная сумма?
ваш алгоритм не нужен! просто посчитайте/просуммируйте значения в колонке выше, на первый взгляд, там вроде адекватные значения.
ответ Понравился? (в смысле пригодился?)

Ann_

Не подскажете как посчитать?) Я только начинаю)

LexaK

ну это же элементарно
ОбщаяМасса = масса1 + масса2 + масса3 + и т.д.

(шутка :D )

выкладывайте ваш отчет, тот с картинкой
ответ Понравился? (в смысле пригодился?)

Ann_

Не поняла что выкладывать?)))

Сама масса брутто у меня рассчитывается по тем формулам...если коробка, то ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество + вес;
а если штуки, то ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество;

Вот и при расчете суммы думала, что эти формулы используются...

причем не верно отрабатывает именно эта строка весбрутто = вес + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество + весбрутто;
как только добавляю весБрутто

LexaK

ЦитироватьНе поняла что выкладывать?)))
программку, которая формирует отчет на вашей картинке :dfbsdfbsdf:

ЦитироватьВот и при расчете суммы думала, что эти формулы используются...
значения в колонке над суммой брутто, правильные?
ответ Понравился? (в смысле пригодился?)

Ann_

ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
    Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.Товары Цикл
      
       ОбластьСтроки.Параметры.НомерСтроки = ТекущаяСтрока.НомерСтроки;
       ОбластьСтроки.Параметры.ПредставлениеНоменклатуры = ТекущаяСтрока.Номенклатура.НаименованиеПолное;
       ОбластьСтроки.Параметры.НоменклатураКод = ТекущаяСтрока.КодТНВЭД;
       ОбластьСтроки.Параметры.КоличествоМест = ТекущаяСтрока.Количество;
       ОбластьСтроки.Параметры.ЕдиницаИзмеренияНоменклатуры = ТекущаяСтрока.Номенклатура.ЕдиницаИзмерения;
       ОбластьСтроки.Параметры.ОбщаяНетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Количество;                                               
       ОбластьСтроки.Параметры.Нетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Упаковка.Числитель;
       ОбластьСтроки.Параметры.КоличествоВОдномМесте = ТекущаяСтрока.Упаковка.Числитель;
       ОбластьСтроки.Параметры.КоличествоМестКороб = ТекущаяСтрока.КоличествоУпаковок;
       ОбластьСтроки.Параметры.Брутто = ТекущаяСтрока.Упаковка.Вес;
             
       вес =  ТекущаяСтрока.КоличествоУпаковок * 0.3;
       Если  ТекущаяСтрока.Упаковка.Числитель > 1 тогда
          ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество + вес;
       Иначе
          ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество;
       КонецЕсли;
                    
      ОбластьСтроки.Параметры.НеттоСУпаковкой = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество;
      

      
      ////
       ТабличныйДокумент.Вывести(ОбластьСтроки);
      
    КонецЦикла;
   
    //подвал
    ОбластьПодвала = МакетОбработки.ПолучитьОбласть("Подвал");
    ОбластьПодвала.Параметры.ИтогоКоличество = СсылкаНаОбъект.Товары.Итог("КоличествоУпаковок");
    ОбластьПодвала.Параметры.ФИОРуководителя = СсылкаНаОбъект.Руководитель;
   
    //оющая масса брутто
    ВесБрутто = 0;
    для каждого стр из СсылкаНаОбъект.Товары цикл
       Если  стр.Упаковка.Числитель > 1 тогда
          весбрутто = вес + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество + весбрутто;
       Иначе
          весбрутто = весбрутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество;
       КонецЕсли;
          конеццикла;
    ОбластьПодвала.параметры.ИтогоНеттоСУпаковкой = ВесБрутто;

    // ВесБрутто = ВесБрутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество * ?(стр.Упаковка.Числитель<0, 1, стр.КоличествоУпаковок) + вес;

   
    // общая масса нетто с первичной упаковкой
    Брутто = 0;
    для каждого стр из СсылкаНаОбъект.Товары цикл
       Брутто = Брутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество;
    конеццикла;
    ОбластьПодвала.параметры.ИтогоБрутто = Брутто;

Добавлено: 01 сен 2020, 11:31




ЦитироватьВот и при расчете суммы думала, что эти формулы используются...
Цитироватьзначения в колонке над суммой брутто, правильные?
да, сами значения выводятся верно

LexaK

попробуйте так

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

СуммаОбщаяБрутто = 0;//+++

    Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.Товары Цикл
     
       ОбластьСтроки.Параметры.НомерСтроки = ТекущаяСтрока.НомерСтроки;
       ОбластьСтроки.Параметры.ПредставлениеНоменклатуры = ТекущаяСтрока.Номенклатура.НаименованиеПолное;
       ОбластьСтроки.Параметры.НоменклатураКод = ТекущаяСтрока.КодТНВЭД;
       ОбластьСтроки.Параметры.КоличествоМест = ТекущаяСтрока.Количество;
       ОбластьСтроки.Параметры.ЕдиницаИзмеренияНоменклатуры = ТекущаяСтрока.Номенклатура.ЕдиницаИзмерения;
       ОбластьСтроки.Параметры.ОбщаяНетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Количество;                                               
       ОбластьСтроки.Параметры.Нетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Упаковка.Числитель;
       ОбластьСтроки.Параметры.КоличествоВОдномМесте = ТекущаяСтрока.Упаковка.Числитель;
       ОбластьСтроки.Параметры.КоличествоМестКороб = ТекущаяСтрока.КоличествоУпаковок;
       ОбластьСтроки.Параметры.Брутто = ТекущаяСтрока.Упаковка.Вес;
             
       вес =  ТекущаяСтрока.КоличествоУпаковок * 0.3;
       Если  ТекущаяСтрока.Упаковка.Числитель > 1 тогда
          ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество + вес;
       Иначе
          ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество;
       КонецЕсли;
   
   СуммаОбщаяБрутто = СуммаОбщаяБрутто + ОбластьСтроки.Параметры.ОбщаяБрутто;//+++
   
      ОбластьСтроки.Параметры.НеттоСУпаковкой = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество;
     

     
      ////
       ТабличныйДокумент.Вывести(ОбластьСтроки);
     
    КонецЦикла;
   
    //подвал
    ОбластьПодвала = МакетОбработки.ПолучитьОбласть("Подвал");
    ОбластьПодвала.Параметры.ИтогоКоличество = СсылкаНаОбъект.Товары.Итог("КоличествоУпаковок");
    ОбластьПодвала.Параметры.ФИОРуководителя = СсылкаНаОбъект.Руководитель;
   
    //оющая масса брутто
    ВесБрутто = 0;
    для каждого стр из СсылкаНаОбъект.Товары цикл
       Если  стр.Упаковка.Числитель > 1 тогда
          весбрутто = вес + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество + весбрутто;
       Иначе
          весбрутто = весбрутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество;
       КонецЕсли;
          конеццикла;
    ОбластьПодвала.параметры.ИтогоНеттоСУпаковкой = ВесБрутто;

    // ВесБрутто = ВесБрутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество * ?(стр.Упаковка.Числитель<0, 1, стр.КоличествоУпаковок) + вес;

   
    // общая масса нетто с первичной упаковкой
    Брутто = 0;
    для каждого стр из СсылкаНаОбъект.Товары цикл
       Брутто = Брутто + стр.Упаковка.Вес / стр.Упаковка.Числитель * стр.Количество;
    конеццикла;
    ОбластьПодвала.параметры.ИтогоБрутто = Брутто;

//наверно здесь, по именам параметров не очень понятна привязка параметров к макету
    ОбластьПодвала.параметры.ИтогоБрутто = СуммаОбщаяБрутто; //+++

ответ Понравился? (в смысле пригодился?)

Ann_

Большое спасибо!))) Все рассчитывается верно)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск