Имя: Пароль:
1C
1С v8
Макет, не правильно суммирует
0 ponaroshku
 
30.12.11
12:06
Конфигурация Управление автотранспортом

написала запрос, вывод в макет

Машина
  Контрагент
        ПараметрВыработки (то, за что начисляются суммы)
             Маршрут  
                ПутевыеЛисты

Итог по ПараметруВыработки считает правильно (на примере - ВремяВРаботе)
Итог по Машине- только сумма- правильная
Косячит в расчете по контрагенту, округляет не так, хотя код тот же вставила

http://i020.radikal.ru/1112/d9/19f17c06d2f5.jpg


Вот кусок заполнения, на который я грешу

           ВыборкаВыработка= ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
           Пока ВыборкаВыработка.Следующий() Цикл
           ОбластьВыработка.Параметры.Заполнить(ВыборкаВыработка);
           
           
                   КолВрем=ВыборкаВыработка.Количество;
                   КолВремЧас=Цел(КолВрем);
                   КолВремДр=КолВрем-КолВремЧас;
                   Если КолМинутах=Ложь Тогда
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*100
                   ИначеЕсли (Найти(ВыборкаВыработка.Выработка,"Время")=0) и (Найти(ВыборкаВыработка.Выработка,"Погрузочно")=0) и (Найти(ВыборкаВыработка.Выработка,"Простой")=0) Тогда //нет времени
                       Раздел=",";
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*100
                   Иначе Раздел=":";
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*60
                   КонецЕсли;                                                
                   ОбластьВыработка.Параметры.КолЦел=Строка(КолВремЧас)+Раздел;
                   
           ТабДок.Вывести(ОбластьВыработка, ВыборкаВыработка.Уровень());





Но, заполнение параметра ВремяВыработки происходит так же в цикле по аналогии


   ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   ВыборкаОбщийИтог.Следующий();        // Общий итог
   ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
   ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());

   ВыборкаМодель = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   Пока ВыборкаМодель.Следующий() Цикл
       ОбластьМодель.Параметры.Заполнить(ВыборкаМодель);
       ТабДок.Вывести(ОбластьМодель, ВыборкаМодель.Уровень());
       
       ВыборкаКонтрагент= ВыборкаМодель.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

       Пока ВыборкаКонтрагент.Следующий() Цикл
           ОбластьКонтрагент.Параметры.Заполнить(ВыборкаКонтрагент);
           ТабДок.Вывести(ОбластьКонтрагент, ВыборкаКонтрагент.Уровень());

           ВыборкаВыработка= ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
           Пока ВыборкаВыработка.Следующий() Цикл
           ОбластьВыработка.Параметры.Заполнить(ВыборкаВыработка);
           
           
                   КолВрем=ВыборкаВыработка.Количество;
                   КолВремЧас=Цел(КолВрем);
                   КолВремДр=КолВрем-КолВремЧас;
                   Если КолМинутах=Ложь Тогда
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*100
                   ИначеЕсли (Найти(ВыборкаВыработка.Выработка,"Время")=0) и (Найти(ВыборкаВыработка.Выработка,"Погрузочно")=0) и (Найти(ВыборкаВыработка.Выработка,"Простой")=0) Тогда //нет времени
                       Раздел=",";
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*100
                   Иначе Раздел=":";
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*60
                   КонецЕсли;                                                
                   ОбластьВыработка.Параметры.КолЦел=Строка(КолВремЧас)+Раздел;
                   
           ТабДок.Вывести(ОбластьВыработка, ВыборкаВыработка.Уровень());
           
           
           ВыборкаМаршрут = ВыборкаВыработка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

           Пока ВыборкаМаршрут.Следующий() Цикл
               ОбластьМаршрут.Параметры.Заполнить(ВыборкаМаршрут);
                   КолВрем=ВыборкаМаршрут.Количество;
                   КолВремЧас=Цел(КолВрем);
                   КолВремДр=КолВрем-КолВремЧас;
                   Если КолМинутах=Ложь Тогда
                       ОбластьВыработка.Параметры.КолДр=КолВремДр*100
                   ИначеЕсли (Найти(ВыборкаМаршрут.Выработка,"Время")=0) и (Найти(ВыборкаМаршрут.Выработка,"Погрузочно")=0) и (Найти(ВыборкаМаршрут.Выработка,"Простой")=0) Тогда //нет времени
                       Раздел=",";
                       ОбластьМаршрут.Параметры.КолДр=КолВремДр*100
                   Иначе Раздел=":";
                       ОбластьМаршрут.Параметры.КолДр=КолВремДр*60
                   КонецЕсли;                                                
                   ОбластьМаршрут.Параметры.КолЦел=Строка(КолВремЧас)+Раздел;
           
               ТабДок.Вывести(ОбластьМаршрут, ВыборкаМаршрут.Уровень());
               ВыборкаДетали = ВыборкаМаршрут.Выбрать();
               Раздел=",";
               
               Пока ВыборкаДетали.Следующий() Цикл
                   ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
                   КолВрем=ВыборкаДетали.Количество;
                   КолВремЧас=Цел(КолВрем);
                   КолВремДр=КолВрем-КолВремЧас;
                   Если КолМинутах=Ложь Тогда
                       ОбластьДетальныхЗаписей.Параметры.КолДр=КолВремДр*100
                   ИначеЕсли (Найти(ВыборкаДетали.Выработка,"Время")=0) и (Найти(ВыборкаДетали.Выработка,"Погрузочно")=0) и (Найти(ВыборкаДетали.Выработка,"Простой")=0) Тогда //нет времени
                       Раздел=",";
                       ОбластьДетальныхЗаписей.Параметры.КолДр=КолВремДр*100
                   Иначе Раздел=":";
                       ОбластьДетальныхЗаписей.Параметры.КолДр=КолВремДр*60
                   КонецЕсли;                                                
                   ОбластьДетальныхЗаписей.Параметры.КолЦел=Строка(КолВремЧас)+Раздел;
                   ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
               КонецЦикла;
           КонецЦикла;
       КонецЦикла;
       КонецЦикла;
   КонецЦикла;
1 ponaroshku
 
30.12.11
12:06
Подскажите, кому не сложно
2 vicof
 
30.12.11
12:09
выполни запрос в консоли и посмотри, правильные ли суммы там
3 bodri
 
30.12.11
12:11
(0) попробуй эти условия в запрос запихнуть
4 ponaroshku
 
30.12.11
12:12
(2) запрос выдает все правильно
проблема идет именно в суммировании, по ПараметруВыработки он суммирует правильно, а вот по этой штуке- нет

вывод в макет
5 ponaroshku
 
30.12.11
12:13
(3) цикл в запрос??
6 ponaroshku
 
30.12.11
12:14
(3) я просто даже не представляю, как
ведь там идет обход результат по группировкам
7 bodri
 
30.12.11
12:43
в ячейке у тебя формат не тот который надо, скорей всего стоит "ЧДЦ=0" т.к. у тебя отрубает, все знаки после запятой
P.S. судя по скрину
8 ponaroshku
 
30.12.11
13:20
(7) не получилось,формат ок
9 ponaroshku
 
30.12.11
13:54
мне кажется из-за Цел
но я понять не могу почему по ПараметруВыработки бьет правильно, а по контрагенту не считает