![]() |
|
Таб док - присоединить/вывести - что не так? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
13.11.12
✎
09:07
|
Надо вывести печатную форму в двух екземплярах на ландшафтную ориентацию листа
т.е. на А4 напечать две формы А5 делаю: ТабличныйДокумент.Вывести(РезультатОсмотра); ТабличныйДокумент.Присоединить(РезультатОсмотра); выводит друг под другом я не правильно СП прочитал? Описание: Присоединяет табличный документ к результирующему табличному документу, помещая его в следующей колонке правее самой правой выведенной колонки, начиная со строки, с которой выводился предыдущий табличный документ. |
|||
1
butterbean
13.11.12
✎
09:08
|
РезультатОсмотра должен быть прямоугольной областью, а не целой строкой
|
|||
2
RomaH
naïve
13.11.12
✎
09:09
|
это из-за разного офрмата строк в РезультатОсмотра?
|
|||
3
hhhh
13.11.12
✎
09:16
|
(2) строка вообще не может быть в Присоединить. Нужно прямоугольник.
|
|||
4
RomaH
naïve
14.11.12
✎
08:04
|
а как тогда красиво вывести "две страницы" на листе?
|
|||
5
butterbean
14.11.12
✎
08:07
|
(4) да также и вывести, только области брать ограниченные прямоугольные, а не шириной во всю строку
|
|||
6
RomaH
naïve
14.11.12
✎
08:09
|
(5) а выводить построчно?
я так понимаю прямоугольную оласть из таб дока не взять если в нем строки с разным форматом |
|||
7
НЕА123
14.11.12
✎
08:13
|
ВставитьОбласть кури.
|
|||
8
RomaH
naïve
14.11.12
✎
08:14
|
(7) так опять же нужная область
а у меня в результирующем ТД - первая строка из одной колонки, а вторая из 10 |
|||
9
НЕА123
14.11.12
✎
08:21
|
(8)
>а у меня в результирующем ТД - первая строка из одной колонки, а вторая из 10 вроде по-русски. но не понимаю. наверно, я еще не проснулся. |
|||
10
НЕА123
14.11.12
✎
08:22
|
(9)+
ээээ. ну а пробовал хоть (7)? |
|||
11
RomaH
naïve
14.11.12
✎
08:29
|
(10) какую область из ТД получать?
строки разного формата сделаны в макете http://www.dropmocks.com/mBmYcu |
|||
12
НЕА123
14.11.12
✎
08:29
|
(0)
при разном формате строк только настройкой принтера печать 2 на одном листе. |
|||
13
RomaH
naïve
14.11.12
✎
08:30
|
а получит надо так:
http://www.dropmocks.com/mBmpc7 |
|||
14
НЕА123
14.11.12
✎
08:31
|
(11)
ну и куле? бери все. Область() |
|||
15
RomaH
naïve
14.11.12
✎
08:41
|
Если размеры исходной области не соответствуют результирующей области, то при выполнении метода возникает ошибка.
|
|||
16
butterbean
14.11.12
✎
08:45
|
(13) еще раз:
назначь имена вертикальным областям и выводи области типа "Горизонтальная|Вертикальная" в свой таб. документ, а потом уже попробуй полученный таб. документ целиком вывести, а потом присоединить |
|||
17
НЕА123
14.11.12
✎
08:46
|
(15)
хм. тогда только (12) остается. я так думаю (с) |
|||
18
RomaH
naïve
14.11.12
✎
08:47
|
(16) зачем "Вертикальная" ? таб док целиком я вывожу
задача его продублировать справа |
|||
19
RomaH
naïve
14.11.12
✎
08:50
|
а если присоединять по строкам?
вопрос как определить последнюю колонку в строке? Типа: Для К = 1 По ТабДок.ВысотаТаблицы() Цикл ОбластьДляПрисоединения = ТабДок.ПолучитьОбласть(К,1,К,???); КонецЦикла |
|||
20
RomaH
naïve
14.11.12
✎
08:52
|
сначала получить таб док ПолучитьОбласть(К,1,К) - не указывая конечную колонку, а потом уже - ШиринаТаблицы?
|
|||
21
RomaH
naïve
14.11.12
✎
09:01
|
типа:
Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,1,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ТабличныйДокумент.Вывести(ОбластьВывода); ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; но почему-то СтрокаТД.ШиринаТаблицы всегда 1 хотя РезультатОсмотра.ШиринаТаблицы = 6 |
|||
22
RomaH
naïve
14.11.12
✎
09:03
|
а, ну да
в общем немного подкорректировать и можно использовать: Функция ПечатьРезультатовОсмотра2хА42(МассивОбъектов,ОбъектыПечати,СуфиксМакета = "") СсылкаНаОбъект = МассивОбъектов[0]; ТабличныйДокумент = Новый ТабличныйДокумент; РезультатОсмотра = ПечатьРезультатовОсмотра(МассивОбъектов,ОбъектыПечати); Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ТабличныйДокумент.Вывести(ОбластьВывода); ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, ОбъектыПечати, СсылкаНаОбъект); Возврат ТабличныйДокумент; КонецФункции |
|||
23
RomaH
naïve
14.11.12
✎
09:04
|
остается добавить границу для отреза/отрыва, и как-то вывести её ровно по центру страницы
|
|||
24
RomaH
naïve
14.11.12
✎
09:05
|
||||
25
RomaH
naïve
14.11.12
✎
09:30
|
есть идеи как вывести линию отреза?
тут еще этой областью (линией отреза) надо бы и ширину левого макета поправить - что бы она ломаной не получилась и с макетом начальным долго не париться - вискивая десятые мисллиметров при настройке |
|||
26
butterbean
14.11.12
✎
09:33
|
(25) париться с шириной придется по-любому
а линию отреза можешь выводить кусочками при каждом присоединении строки |
|||
27
RomaH
naïve
14.11.12
✎
09:49
|
вроде все так, но почему-то линию отреза выводит не ту что в макете задана
МакетЛинииОтреза = ПолучитьОбщийМакет("МакетЛинииОтреза"); ОбластьЛинииОтреза = МакетЛинииОтреза.ПолучитьОбласть("Строка|Колонка"); РезультатОсмотра = ПечатьРезультатовОсмотра(МассивОбъектов,ОбъектыПечати); Середина = 74.52; ТабличныйДокумент = Новый ТабличныйДокумент; Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ШиринаСтроки = 0; Для Н = 1 По СтрокаТД.ШиринаТаблицы Цикл Область = ОбластьВывода.Область(К,Н,К,Н); ШиринаСтроки = ШиринаСтроки + Область.ШиринаКолонки; КонецЦикла; ШиринаЛевойКолонки = Середина - ШиринаСтроки; ОбластьЛинииОтреза.Область(1,1,1,1).ШиринаКолонки = ШиринаЛевойКолонки; ТабличныйДокумент.Вывести(ОбластьВывода); ТабличныйДокумент.Присоединить(ОбластьЛинииОтреза); ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, ОбъектыПечати, СсылкаНаОбъект); Возврат ТабличныйДокумент; |
|||
28
RomaH
naïve
14.11.12
✎
09:50
|
||||
29
RomaH
naïve
14.11.12
✎
09:53
|
почему выводит в линию отреза не те ячейки котррые в макете указаны?
|
|||
30
RomaH
naïve
14.11.12
✎
09:54
|
должны быть две синие с границей посередине
а выводит две белые без границы, |
|||
31
НЕА123
14.11.12
✎
10:11
|
проще изменить макет.
я бы убрал формат строк + добавил копию. |
|||
32
RomaH
naïve
14.11.12
✎
10:13
|
(31) таких макетов по 50 штук
все в процессе разработки/корректировки для того что бы изменить/добавить что-либо в макете печати - надо аккуратно это исправить в ТРЕХ местах м макете для А5 + два места в макете для А4 |
|||
33
RomaH
naïve
14.11.12
✎
10:15
|
вообще что-то не врубаюсь
пробую так: (заккоменченный код) - вообще перестает выводить вторую часть |
|||
34
RomaH
naïve
14.11.12
✎
10:15
|
МакетЛинииОтреза = ПолучитьОбщийМакет("МакетЛинииОтреза");
ОбластьЛинииОтреза = МакетЛинииОтреза.ПолучитьОбласть("R1C1:R1C2"); РезультатОсмотра = ПечатьРезультатовОсмотра(МассивОбъектов,ОбъектыПечати); Середина = 74.52; ТабличныйДокумент = Новый ТабличныйДокумент; Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ШиринаСтроки = 0; Для Н = 1 По СтрокаТД.ШиринаТаблицы Цикл Область = ОбластьВывода.Область(К,Н,К,Н); ШиринаСтроки = ШиринаСтроки + Область.ШиринаКолонки; КонецЦикла; ШиринаЛевойКолонки = Середина - ШиринаСтроки; //ОбластьЛинииОтреза.Область(1,1,1,1).ШиринаКолонки = ШиринаЛевойКолонки; //ТабДокСправа = Новый ТабличныйДокумент; // //ТабДокСправа.Вывести(ОбластьЛинииОтреза); //ТабДокСправа.Присоединить(ОбластьВывода); ТабличныйДокумент.Вывести(ОбластьВывода); //ТабличныйДокумент.Вывести(ТабДокСправа); //ТабличныйДокумент.Присоединить(ТабДокСправа.ПолучитьОбласть(1,1,1,ТабДокСправа.ШиринаТаблицы)); ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; |
|||
35
RomaH
naïve
14.11.12
✎
10:17
|
(31) формат строк конечно можно убрать - то опять же гемморой получаю с форматированием макета - тут немного убавить, там добавить
это надо будет делать колонки шириной 2 и форматировать объединением чеек вобщем-то все начало получаться, уперся в вывод "разделителя" |
|||
36
RomaH
naïve
14.11.12
✎
10:20
|
почему вот такое выводит только синюю полоску линии отрыва?
|
|||
37
RomaH
naïve
14.11.12
✎
10:20
|
МакетЛинииОтреза = ПолучитьОбщийМакет("МакетЛинииОтреза");
ОбластьЛинииОтреза = МакетЛинииОтреза.ПолучитьОбласть("R1C1:R1C2"); РезультатОсмотра = ПечатьРезультатовОсмотра(МассивОбъектов,ОбъектыПечати); Середина = 74.52; ТабличныйДокумент = Новый ТабличныйДокумент; Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ШиринаСтроки = 0; Для Н = 1 По СтрокаТД.ШиринаТаблицы Цикл Область = ОбластьВывода.Область(К,Н,К,Н); ШиринаСтроки = ШиринаСтроки + Область.ШиринаКолонки; КонецЦикла; ШиринаЛевойКолонки = Середина - ШиринаСтроки; //ОбластьЛинииОтреза.Область(1,1,1,1).ШиринаКолонки = ШиринаЛевойКолонки; ТабДокСправа = Новый ТабличныйДокумент; ТабДокСправа.Вывести(ОбластьЛинииОтреза); ТабДокСправа.Присоединить(ОбластьВывода); //ТабличныйДокумент.Вывести(ОбластьВывода); ТабличныйДокумент.Вывести(ТабДокСправа); //ТабличныйДокумент.Присоединить(ТабДокСправа.ПолучитьОбласть(1,1,1,ТабДокСправа.ШиринаТаблицы)); //ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; |
|||
38
RomaH
naïve
14.11.12
✎
10:21
|
ОбластьЛинииОтреза = МакетЛинииОтреза.ПолучитьОбласть("R1C1:R1C2");
- вроде прямоугольная область и ОбластьВывода таже что и раньше но не присоединяет её вообще |
|||
39
RomaH
naïve
14.11.12
✎
10:26
|
ну да - все упирается в разный формат строк
в одной строке может быть область ТД одного формата, либо без формата + один формат строки убрал формат строки из линии отреза - получил все строки в макете одного формата добавил - не присоединяет область вообще |
|||
40
RomaH
naïve
14.11.12
✎
10:36
|
а ширину колонки как задать?
РезультатОсмотра = ПечатьРезультатовОсмотра(МассивОбъектов,ОбъектыПечати); Середина = 74.52; ТабличныйДокумент = Новый ТабличныйДокумент; Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ШиринаСтроки = 0; Для Н = 1 По СтрокаТД.ШиринаТаблицы Цикл Область = ОбластьВывода.Область(К,Н,К,Н); ШиринаСтроки = ШиринаСтроки + Область.ШиринаКолонки; КонецЦикла; ШиринаЛевойКолонки = Середина - ШиринаСтроки; ОбластьЛинииОтреза = СтрокаТД.ПолучитьОбласть("R1C100:R1C101"); ОбластьЛинииОтреза.Область(1,1,1,1).ШиринаКолонки = ШиринаЛевойКолонки; ОбластьЛинииОтреза.Область(1,2,1,2).ШиринаКолонки = 2.7; ОбластьЛинииОтреза.Область(1,2,1,2).ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Точечная,1); ТабличныйДокумент.Вывести(ОбластьВывода); ТабличныйДокумент.Присоединить(ОбластьЛинииОтреза); ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, ОбъектыПечати, СсылкаНаОбъект); границу рисует, но ширина колокно остается первоначальной |
|||
41
RomaH
naïve
14.11.12
✎
10:41
|
блин
теперь ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ШиринаСтроки = 0; Для Н = 1 По СтрокаТД.ШиринаТаблицы Цикл Область = ОбластьВывода.Область(К,Н,К,Н); ШиринаСтроки = ШиринаСтроки + Область.ШиринаКолонки; КонецЦикла; возвращает для всех строк кроме первой ширину 9 |
|||
42
RomaH
naïve
14.11.12
✎
10:47
|
похвастаюсь
http://www.dropmocks.com/mBmwAi Функция ПечатьРезультатовОсмотра2хА42(МассивОбъектов,ОбъектыПечати,СуфиксМакета = "") СсылкаНаОбъект = МассивОбъектов[0]; РезультатОсмотра = ПечатьРезультатовОсмотра(МассивОбъектов,ОбъектыПечати); Середина = 74.52; ТабличныйДокумент = Новый ТабличныйДокумент; Для К = 1 По РезультатОсмотра.ВысотаТаблицы Цикл СтрокаТД = РезультатОсмотра.ПолучитьОбласть(К,,К); ОбластьВывода = РезультатОсмотра.ПолучитьОбласть(К,1,К,СтрокаТД.ШиринаТаблицы); ШиринаСтроки = 0; Для Н = 1 По СтрокаТД.ШиринаТаблицы Цикл Область = ОбластьВывода.Область(1,Н,1,Н); ШиринаСтроки = ШиринаСтроки + Область.ШиринаКолонки; КонецЦикла; ШиринаЛевойКолонки = Середина - ШиринаСтроки; ОбластьЛинииОтреза = СтрокаТД.ПолучитьОбласть("R1C100:R1C101"); ОбластьЛинииОтреза.Область(,1,,1).ШиринаКолонки = ШиринаЛевойКолонки; ОбластьЛинииОтреза.Область(,2,,2).ШиринаКолонки = 2.7; ОбластьЛинииОтреза.Область(1,2,1,2).ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Точечная,1); ТабличныйДокумент.Вывести(ОбластьВывода); ТабличныйДокумент.Присоединить(ОбластьЛинииОтреза); ТабличныйДокумент.Присоединить(ОбластьВывода); КонецЦикла; УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, ОбъектыПечати, СсылкаНаОбъект); Возврат ТабличныйДокумент; КонецФункции |
|||
43
RomaH
naïve
14.11.12
✎
10:47
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |