Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как правильно передать значение в макет?

Как правильно передать значение в макет?
Я
   YamEgor
 
04.03.20 - 11:33
Добрый день, подскажите как правильно передать значение в ячейку макета. В отчете есть под заголовок "Прочие нематериальные активы" и у него должно выводиться сумма количества и сумма денег накапливаемые в цикле, а ниже проходит сам цикл. и у меня не получается вывести суммируемые количество и сумму в макет так как подзаголовок находится выше Цикла. как быть в этой ситуации?

    //Итог области ШапкаНемАктивы
    ШапкаНемАктивы.Параметры.ВсегоКолВоНемАкт = ВсегоКолНемАкт;
    ШапкаНемАктивы.Параметры.ВсегоСуммаНемАкт = ВсегоСумНемАкт;
    ТабДок.Вывести(ШапкаНемАктивы);
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТиповойОстатки.Субконто1.Представление КАК НаименованиеНемАкт,
        |    1 КАК КоличествоНемАкт,
        |    ТиповойОстатки.СуммаОстаток КАК СуммаНемАкт
        |ИЗ
        |    РегистрБухгалтерии.Типовой.Остатки(&ДатаНачала, Счет = &Счет, &СубНемАкт, Субконто1.ВидНМА = &ПрочНемАктивы) КАК ТиповойОстатки";
    
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ПрочНемАктивы", Перечисления.ВидыНМА.ПрочиеНематериальныеАктивы);
    
    СубНемАкт = Новый Массив;
    СубНемАкт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоТиповые.НематериальныеАктивы);
    
    Запрос.УстановитьПараметр("СубНемАкт", СубНемАкт);
    Запрос.УстановитьПараметр("Счет", ПланыСчетов.Типовой.ПрочиеНематериальныеАктивы);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВсегоКолНемАкт = 0;
    ВсегоСумНемАкт = 0;

    ВыборкаНемАктивы = РезультатЗапроса.Выбрать();
    Пока ВыборкаНемАктивы.Следующий() Цикл
        ОбластьНемАктивы.Параметры.НаименованиеНемАктив = ВыборкаНемАктивы.НаименованиеНемАкт;
        ОбластьНемАктивы.Параметры.КолВоНемАкт = ВыборкаНемАктивы.КоличествоНемАкт;
        ОбластьНемАктивы.Параметры.СуммаНемАкт = ВыборкаНемАктивы.СуммаНемАкт;
        ТабДок.Вывести(ОбластьНемАктивы, ВыборкаНемАктивы.Уровень());
        ВсегоКолНемАкт = ВсегоКолНемАкт+ВыборкаНемАктивы.КоличествоНемАкт;
        ВсегоСумНемАкт = ВсегоСумНемАкт+ВыборкаНемАктивы.СуммаНемАкт;
    КонецЦикла;
 
 
   K1RSAN
 
1 - 04.03.20 - 11:35
То есть надо сначала "группу" с итогом по "подгруппе", а потом сама "подгруппа" выводится?
   ДенисЧ
 
2 - 04.03.20 - 11:35
Посчитать заранее. И сразу вывести итог.
   dka80
 
3 - 04.03.20 - 11:37
В запросе добавить Итоги
   YamEgor
 
4 - 04.03.20 - 11:39
(2) можете подсказать как это сделать?
   YamEgor
 
5 - 04.03.20 - 13:22
сделал вот так (может кому понадобится):      
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТиповойОстатки.Субконто1.Представление КАК НаименованиеНемАкт,
        |    1 КАК КоличествоНемАкт,
        |    ТиповойОстатки.СуммаОстаток КАК СуммаНемАкт
        |ИЗ
        |    РегистрБухгалтерии.Типовой.Остатки(&ДатаНачала, Счет = &Счет, &СубНемАкт, Субконто1.ВидНМА = &ПрочНемАктивы) КАК ТиповойОстатки";
    
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ПрочНемАктивы", Перечисления.ВидыНМА.ПрочиеНематериальныеАктивы);
    
    СубНемАкт = Новый Массив;
    СубНемАкт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоТиповые.НематериальныеАктивы);
    
    Запрос.УстановитьПараметр("СубНемАкт", СубНемАкт);
    Запрос.УстановитьПараметр("Счет", ПланыСчетов.Типовой.ПрочиеНематериальныеАктивы);
    
    РезультатЗапроса = Запрос.Выполнить();

    ТЗНемАктивы = РезультатЗапроса.Выгрузить();
    ШапкаНемАктивы.Параметры.ВсегоКолВоНемАкт = ТЗНемАктивы.Итог("КоличествоНемАкт");
    ШапкаНемАктивы.Параметры.ВсегоСуммаНемАкт = ТЗНемАктивы.Итог("СуммаНемАкт");
    ТабДок.Вывести(ШапкаНемАктивы);
    Для каждого ВыборкаНемАктивы Из ТЗНемАктивы Цикл
        ОбластьНемАктивы.Параметры.НаименованиеНемАктив = ВыборкаНемАктивы.НаименованиеНемАкт;
        ОбластьНемАктивы.Параметры.КолВоНемАкт = ВыборкаНемАктивы.КоличествоНемАкт;
        ОбластьНемАктивы.Параметры.СуммаНемАкт = ВыборкаНемАктивы.СуммаНемАкт;
        ТабДок.Вывести(ОбластьНемАктивы);
    КонецЦикла;

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