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


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

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

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

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

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




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

КонецЦикла;

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

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

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

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


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