|
Печать разнородных макетов в одном табличном документе | ☑ | ||
---|---|---|---|---|
0
dj_serega
12.12.13
✎
15:21
|
Как можно извратиться, что бы в одном табличном документе вывести макеты (допустим) Реализации товаров и услуг и Налоговой накладной?
Структура колонок разная, и при ТабДокумент.Вывести(ГотовыйТабДокумент) оно ломает второй макет ;( |
|||
1
Fragster
модератор
12.12.13
✎
15:24
|
вот такая вот загогулина:
// Формируем документ: ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.Вывести(ТабДокументДоговор); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ТабДокументДоговор); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); // установим ширину колонок под акт: ВысотаДокумента = ТабДокумент.ВысотаТаблицы; ВысотаАкта = ТабДокументАкт.ВысотаТаблицы; ШиринаАкта = ТабДокументАкт.ШиринаТаблицы; ОбластьАкта = ТабДокумент.Область(ВысотаДокумента+1,1,ВысотаДокумента+ВысотаАкта,ШиринаАкта); ОбластьАкта.СоздатьФорматСтрок(); Для Сч = 1 По ШиринаАкта Цикл Область = ТабДокумент.Область(ВысотаДокумента+1,Сч,ВысотаДокумента+ВысотаАкта,Сч); Область.ШиринаКолонки = ТабДокументАкт.Область(1,Сч).ШиринаКолонки; КонецЦикла; Для Сч = 1 По ВысотаАкта Цикл Область = ТабДокумент.Область(ВысотаДокумента+Сч,,ВысотаДокумента+Сч,); Область.ВысотаСтроки = ТабДокументАкт.Область(Сч,,Сч,).ВысотаСтроки; КонецЦикла; ТабДокумент.ВставитьОбласть(ТабДокументАкт.Область(1,1,ВысотаАкта,ШиринаАкта), ТабДокумент.Область(ВысотаДокумента+1,1,ВысотаДокумента+ВысотаАкта,ШиринаАкта)); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); // акт выполненных работ ВысотаДокумента = ТабДокумент.ВысотаТаблицы; ВысотаАкта = ТабДокументАктВыполненныхРабот.ВысотаТаблицы; ШиринаАкта = ТабДокументАктВыполненныхРабот.ШиринаТаблицы; ОбластьАкта = ТабДокумент.Область(ВысотаДокумента+1,1,ВысотаДокумента+ВысотаАкта,ШиринаАкта); ОбластьАкта.СоздатьФорматСтрок(); Для Сч = 1 По ШиринаАкта Цикл Область = ТабДокумент.Область(ВысотаДокумента+1,Сч,ВысотаДокумента+ВысотаАкта,Сч); Область.ШиринаКолонки = ТабДокументАктВыполненныхРабот.Область(1,Сч).ШиринаКолонки; КонецЦикла; Для Сч = 1 По ВысотаАкта Цикл Область = ТабДокумент.Область(ВысотаДокумента+Сч,,ВысотаДокумента+Сч,); Область.ВысотаСтроки = ТабДокументАктВыполненныхРабот.Область(Сч,,Сч,).ВысотаСтроки; КонецЦикла; ТабДокумент.ВставитьОбласть(ТабДокументАктВыполненныхРабот.Область(1,1,ВысотаАкта,ШиринаАкта), ТабДокумент.Область(ВысотаДокумента+1,1,ВысотаДокумента+ВысотаАкта,ШиринаАкта)); если сначала выводить область, то доп пустые места могут справа появиться. |
|||
2
dj_serega
12.12.13
✎
15:30
|
хм... занимательно. Спасибо. Попробую.
|
|||
3
dj_serega
12.12.13
✎
19:08
|
Идея помогла, но были проблемы с табличной частью Реализации. Весь табличный документ получился красиво, а вот в табличной части реализации сбились объединения колонок (во всех что попали в пакет). Пришлось в табдокументах, при условии что это Реализация, перебирать все ячейки и устанавливать ширину.
Спасибо Fragster. |
|||
4
Fragster
модератор
12.12.13
✎
19:15
|
если самая верхняя ячейка - объединение, то нужно добавить еще сверхузкую строку без объединения в самый верх макета, этот нюанс я забыл, да. Ну, или не сверхузкую, а просто на вставлять ее в итоговый документ из куска.
|
|||
5
Fragster
модератор
12.12.13
✎
19:15
|
не вставлять
|
|||
6
Fragster
модератор
12.12.13
✎
19:16
|
самая верхняя ячейка куска, за
|
|||
7
kosts
12.12.13
✎
19:22
|
В макете выводимом вторым. в каждой именованной горизонтальной области выделить область и немного изменить ширину, должен быть вопрос типа изменить ширину и тд, подтвердить. Готово
|
|||
8
dj_serega
12.12.13
✎
23:08
|
(7) дело в том, что я писал под пакетную печать. А база на полной поддержке без возможности изменения ;)
Завтра попробую без костыля, но с нюансом (4) . |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |