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

Вывести сумму ИтогоПоДокументу в Заголовок печатной формы

Вывести сумму ИтогоПоДокументу в Заголовок печатной формы
Я
   TrAN
 
06.10.21 - 12:04
Коллеги, доброго времени суток!

В первый раз столкнулась с такой задачей.
Есть печатная форма - 2 области: Шапка и СтрокаТЧ.
В СтрокеТЧ параметры: Номенклатура (из ТЧ документа), Количество (из ТЧ документа), СуммаПоСтроке (кол-во * на цену из РегистраСведений на дату документа).
В Шапке различные надписи и параметр ИтогоПоДокументу.
Проблемма в том что сначало выводится Шапка, потом построчно СтрокаТЧ и сумма итого считается во время вывода, так как заранее запросы к РС не делаются.

Как вариант написать функцию, которая считает СуммуПоДокументу и выводит её вместе с шапкой, но не хочется два раза запросы в цикле делать (один для Итого, второй для СуммыСтроки)

Может что подскажите, буду благодарна!

Спасибо!
   polosov
 
1 - 06.10.21 - 12:15
(0) Не выводить сразу области, а сначала их сохранять в массив (Вместо ТабДок.Вывести(ОбластьШапка) сделать МойМассив.Добавить(ОбластьШапка))
После получения итоговой суммы сделать МойМассив[0].Параметры.СуммаИтого = СуммаИтого;
Потом вывести последовательно все области.
   Ёпрст
 
2 - 06.10.21 - 12:23
(0) запоминай выведенную область шапка в результирующем табличном документе в переменную, потом установи текст в нужную ячейку этой области.
   Ёпрст
 
3 - 06.10.21 - 12:27
Если что, вывести/присоеденить возвращает эту областт...
   TrAN
 
4 - 06.10.21 - 12:32
(1) А как быть со Строкой?
Я пыталась её в массив писать, но записывавется одна и таже строка 10 раз
   polosov
 
5 - 06.10.21 - 13:05
(4) Да, область одна и та же. Тогда (2) попробуй. Ячейку можно перебором поискать по имени параметра или просто хардкодом прописать координаты, но это не совсем тру.
   Kassern
 
6 - 06.10.21 - 13:09
(0) А нельзя использовать для шапки реквизит СуммаДокумента?
   TrAN
 
7 - 06.10.21 - 13:11
(5) Если често, я не очень поняла способ из 3-го комментария
   polosov
 
8 - 06.10.21 - 13:17
(7) Тогда в цикле перед добавлением строки каждый раз заново получай область строки. Это про метод (1)
   polosov
 
9 - 06.10.21 - 13:19
+(8)
    
    ТабДок = Новый ТабличныйДокумент;
    Масс = Новый Массив;
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    Масс.Добавить(Макет.ПолучитьОбласть("Шапка"));
    
    Для Инд = 1 По 10 Цикл
        Обл = Макет.ПолучитьОбласть("Строка");
        Обл.Параметры.СтрокаПарам = Инд;
        Масс.Добавить(Обл);
    КонецЦикла;
    
    Для Инд = 0 По 10 Цикл
        ТабДок.Вывести(Масс[Инд]);
    КонецЦикла;
   TrAN
 
10 - 06.10.21 - 13:23
(8) По этому методу получилось! Спасибо!
Сейчас для практики буду пробывать метот из 9-го вашего комментатрия
   Ёпрст
 
11 - 06.10.21 - 14:03
(7)

Вася = ТабДок.Вывести(ОбластьШапка);
Цикл
.................
   ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Вася.Область(1,1,1,1).Текст = ИтогиПоЦиклу;


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