|   |   | 
| 
 | Вывести сумму ИтогоПоДокументу в Заголовок печатной формы | ☑ | ||
|---|---|---|---|---|
| 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) 
 
 | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |