Вход | Регистрация
 

Вывод на печать

Вывод на печать
Я
   Начинающий_13
 
21.08.20 - 10:19
Здравствуйте.
Зажат в конструкцию для печати. Менять не хочется много работы будет(есть общие процедуры и функции для других форм печати).
Требуется подставить итоги по КВАРТАЛАМ после каждого квартала (С выводом секции ОбластьИтогоЗаКвартал) .
Номер квартала есть в Выборке.КварталНомер. В Принципе любые данные по месяцу(году) там будут, если надо.
Как грамотно сделать? Не цикля много.


Пока Док.Следующий() Цикл

///// мое заполнение

Пока Выборка.Следующий() Цикл

                      ///// мое заполнение

        ОбластьИтогоЗаМесяц.Параметры.ДнейЗаМесяц   = ДнейЗаМесяц;
        ОбластьИтогоЗаМесяц.Параметры.ЧасовЗаМесяц  = ЧасовЗаМесяц;
        ТабДок.Вывести(ОбластьИтогоЗаМесяц);




        //// увеличим итоги по квартал
        ДнейЗаКвартал     = ДнейЗаКвартал   + ДнейЗаМесяц;
        ЧасовЗаКвартал    = ЧасовЗаКвартал  + ЧасовЗаМесяц;
        //// увеличим итоги по документу
        ДнейЗаГод         = ДнейЗаГод     + ДнейЗаМесяц;
        ЧасовЗаГод        = ЧасовЗаГод    + ЧасовЗаМесяц;

КонецЦикла;

    //// итоги за Квартал
    ОбластьИтогоЗаКвартал.Параметры.ДнейЗаКвартал   = ДнейЗаКвартал;
    ОбластьИтогоЗаКвартал.Параметры.ЧасовЗаКвартал  = ЧасовЗаКвартал;
    ТабДок.Вывести(ОбластьИтогоЗаКвартал);
    
         //// Выводим итоги за Год
    ОбластьИтогоЗаГод.Параметры.ДнейЗаГод          = ДнейЗаГод;
    ОбластьИтогоЗаГод.Параметры.ЧасовЗаГод         = ЧасовЗаГод;
    ТабДок.Вывести(ОбластьИтогоЗаГод);

КонецЦикла;
   Начинающий_13
 
1 - 21.08.20 - 10:47
Хотя бы какие-нибудь варианты(Подходы), что бы испытать.
   ДенисЧ
 
2 - 21.08.20 - 10:48
Возьми скд и нииии мозги
   Начинающий_13
 
3 - 21.08.20 - 10:53
Мне тогда придется другие запросы переписывать для других печ. форм и переделывать другие печ. формы. Циклами сравнением копий одной таблицы эта проблема решается. Хочется алгоритм, который как шаблон будут использовать
   ZDenis
 
4 - 21.08.20 - 10:59
(0) Заведи переменную в которой будешь хранить текущий квартал при выборке. Когда эта переменная <> Выборке.КварталНомер, то тогда обнулять выводить данные по кварталу и обнулять итоги переменных ДнейЗаКвартал, ЧасовЗаКвартал
   Начинающий_13
 
5 - 21.08.20 - 11:03
Проблема в том, как вывести секцию, а не подсчет ОНИ в данный конструкции в разных циклах итоги по кварталу в цикле Док., надо их как поставить в цикл Выборки
   Начинающий_13
 
6 - 21.08.20 - 11:05
Может есть конструкция с применением какой нибудь функции.. и подстановкой или заменой.
   ZDenis
 
7 - 21.08.20 - 11:07
(5) Это не реальный кусок кода что-ли?
        
//// увеличим итоги по квартал

ДнейЗаКвартал     = ДнейЗаКвартал   + ДнейЗаМесяц;
ЧасовЗаКвартал    = ЧасовЗаКвартал  + ЧасовЗаМесяц;
   Начинающий_13
 
8 - 21.08.20 - 11:10
Не понял. В данный момент все считается правильно по колонкам(и там нет кварталом). Этот алгоритм ИтогиПоГоду равны ИтогамПоКварталу
   ZDenis
 
9 - 21.08.20 - 11:14
(8) Я тоже не понял что надо.
В шапке "Требуется подставить итоги по КВАРТАЛАМ после каждого квартала (С выводом секции ОбластьИтогоЗаКвартал) ." как это сделать я написал. Если у тебя код который ты привел не реальный, а выдумка, то напиши реальный кусок, который есть сейчас. Сейчас понять что ДОК, а что ВЫБОРКА не возможно
   Начинающий_13
 
10 - 21.08.20 - 11:23
Общая схема
Пока Док.Следующий() Цикл/// Обход документов

//// мое заполнение

Пока Выборка.Следующий()////Цикл Обход ТЧ документа

//// мое заполнение

КонецЦикла;
////Выводятся итоги по кварталу и году

КонецЦикла; 

Этого сейчас нет(Это надо подставить в алгоритм)если возможно

        //// увеличим итоги по квартал

        ДнейЗаКвартал     = ДнейЗаКвартал   + ДнейЗаМесяц;
        ЧасовЗаКвартал    = ЧасовЗаКвартал  + ЧасовЗаМесяц; 


    //// итоги за Квартал

    ОбластьИтогоЗаКвартал.Параметры.ДнейЗаКвартал   = ДнейЗаКвартал;
    ОбластьИтогоЗаКвартал.Параметры.ЧасовЗаКвартал  = ЧасовЗаКвартал;
    ТабДок.Вывести(ОбластьИтогоЗаКвартал);

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.