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