Имя: Пароль:
1C
1С v8
округление десятичной части
0 Злобная Печенька
 
23.07.12
09:09
Сделала печатную форму "расчет денежного содержания на период отпуска" с расшифровкой по месяцам. Среднее за месяц считает нормально, а вот в итогах теряет пару копеек. Где копать, уже и не знаю. Может, кто сможет помочь падавану?  
Если ЕстьРазовыеНачисления Тогда
       СекцияЗаголовокНачислений = Макет.ПолучитьОбласть("ШапкаРазовыеНачисления");
       ПериодРасчетаСреднегоЗаработкаНачало = ДобавитьМесяц(НачалоМесяца(ДатаСобытия),-12);
       ПериодРасчетаСреднегоЗаработкаОкончание = НачалоМесяца(ДатаСобытия) - 1;
       СекцияЗаголовокНачислений.Параметры.ДатаНачалаРасчетногоПериода = Формат(ПериодРасчетаСреднегоЗаработкаНачало,"ДФ=dd.MM.yyyy");
       СекцияЗаголовокНачислений.Параметры.ДатаОкончанияРасчетногоПериода = Формат(ПериодРасчетаСреднегоЗаработкаОкончание,"ДФ=dd.MM.yyyy");
       ТабДокумент.Вывести(СекцияЗаголовокНачислений);
       Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    БУДополнительныеНачисления.Сотрудник,
       |    БУДополнительныеНачисления.Результат КАК Результат,
       |    БУДополнительныеНачисления.ПериодРегистрации КАК МЕСЯЦ,
       |    БУДополнительныеНачисления.Результат / 12 КАК Среднее,
       |    БУДополнительныеНачисления.ВидРасчета.Наименование КАК ВидРасчета
       |ИЗ
       |    РегистрРасчета.БУДополнительныеНачисления КАК БУДополнительныеНачисления
       |ГДЕ
       |    БУДополнительныеНачисления.ПериодРегистрации МЕЖДУ &ПериодРасчетаСреднегоЗаработкаНачало И &ПериодРасчетаСреднегоЗаработкаОкончание
       |    И БУДополнительныеНачисления.Сотрудник = &Сотрудник
       |    И (БУДополнительныеНачисления.ВидРасчета.Наименование = ""Месячная премия (фик)""
       |            ИЛИ БУДополнительныеНачисления.ВидРасчета.Наименование = ""Материальная помощь (гос)"")";

   Запрос.УстановитьПараметр("ПериодРасчетаСреднегоЗаработкаНачало", ПериодРасчетаСреднегоЗаработкаНачало);
   Запрос.УстановитьПараметр("ПериодРасчетаСреднегоЗаработкаОкончание", ПериодРасчетаСреднегоЗаработкаОкончание);
   Запрос.УстановитьПараметр("Сотрудник", ФИО);
   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ИтогоРазовыеНачисления=0;
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                   //Пока ВыборкаДетальныеЗаписи.НайтиСледующий("Разовые") Цикл
           ЗаполнитьЗначенияСвойств(СекцияСтрокаНачисления2.Параметры,ВыборкаДетальныеЗаписи);
       СекцияСтрокаНачисления2.Параметры.Месяц=Формат(ВыборкаДетальныеЗаписи.Месяц, "ДФ = ""MMMM yyyy""");
       ТабДокумент.Вывести(СекцияСтрокаНачисления2);
           ИтогоРазовыеНачисления = ИтогоРазовыеНачисления + ВыборкаДетальныеЗаписи.Среднее ;
       КонецЦикла;

       СекцияИтогНачисления2.Параметры.Итог = ИтогоРазовыеНачисления;
       ТабДокумент.Вывести(СекцияИтогНачисления2);
   КонецЕсли;
1 Злобная Печенька
 
23.07.12
09:10
если просуммировать вручную все месяца, то сумма получается правильная(((
2 Ненавижу 1С
 
гуру
23.07.12
09:11
ВЫРАЗИТЬ(БУДополнительныеНачисления.Результат / 12 КАК ЧИСЛО(15,2)) КАК Среднее
3 Злобная Печенька
 
23.07.12
09:41
(2)спасибо, сейчас гляну
4 Злобная Печенька
 
23.07.12
09:42
(2)спасибо, получилось!!!!
Основная теорема систематики: Новые системы плодят новые проблемы.