![]() |
![]() |
![]() |
|
Помогите разобраться с печатью динамического списка 8.1 | ☑ | ||
---|---|---|---|---|
0
breezee
21.09.15
✎
20:49
|
У меня есть область "Дис" к которой нужно присоединить колонки динамического списка. Ячейка с которой нужно начинать добавлять колонки R98C10. Код ниже прибавляет мне ячейкм колонкой ниже, а надо в этой колонке. Т.е.
как есть http://i.imgur.com/XMx7CqH.png как надо http://i.imgur.com/xMDzM17.png ОбластьДис = Макет.ПолучитьОбласть("Дис"); ТЗХРАН = Хран.Получить(); Для итератор = 2 по ТЗХРАН.Колонки.Количество()-1 цикл Секция = ТабДок.ПолучитьОбласть("R98C10"); Секция.Область().Текст = "А"+итератор; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; ТабДок.Присоединить(Секция); КонецЦикла; Подксажите что сделать чтобы стало на "как надо", поажалуйста. |
|||
1
Lexey_
21.09.15
✎
20:53
|
(0) ОбластьДис это неограниченная строка? Сделай ее ограниченной
|
|||
2
breezee
21.09.15
✎
20:58
|
(1) Задал её сверху ограниченной
http://i.imgur.com/jfYiZ0H.png Эффект тот же |
|||
3
Lexey_
21.09.15
✎
21:00
|
(2) как получаешь новую область?
|
|||
4
breezee
21.09.15
✎
21:03
|
(3) Еще раз скину код сверху с комментами, может я что-то не понимаю(скорее всего я)
ОбластьДис = Макет.ПолучитьОбласть("Дис"); //Последняя область, в СП сказано что к ней справа будет присоединяться Для итератор = 2 по ТЗХРАН.Колонки.Количество()-1 цикл Секция = ТабДок.ПолучитьОбласть("R98C10"); //Еще раз указываю область куда нужно выводить сначала, хотят тут вроде можно любую ячейку указать, раз присоединятся к тому я выше указал Секция.Область().Текст = "А"+итератор; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; ТабДок.Присоединить(Секция); //Само присоединение |
|||
5
Lexey_
21.09.15
✎
21:06
|
(4) ТабличныйДокумент.ПолучитьОбласть();
В качестве имени также можно передавать пересечение двух областей, записываемое как "<Имя области 1> | <Имя области 2>". |
|||
6
breezee
21.09.15
✎
21:12
|
(5) Но в самом ТабДоке мне нужно выводить именно с этой ячейки. Хотя я даже не уверен, вообще я совсем запутался. Именя я указываю для МАКЕТА, т.е. мне сначала нужно вывести область макета в табдок, а потом к ней присоединять, она только тогда станет последней?
|
|||
7
Lexey_
21.09.15
✎
21:14
|
(6) если я правильно понял, да
|
|||
8
breezee
21.09.15
✎
21:22
|
Вывел область, результат тот же самый. Я не понимаю что я не так делаю. За помощь спасибо!
ОбластьДис = Макет.ПолучитьОбласть("Дис"); ТабДок.Вывести(ОбластьДис); ТЗХРАН = Хран.Получить(); Для итератор = 2 по ТЗХРАН.Колонки.Количество()-1 цикл Секция = ТабДок.ПолучитьОбласть("R98C10"); Секция.Область().Текст = "А"+итератор; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; ТабДок.Присоединить(Секция); КонецЦикла; |
|||
9
Lexey_
21.09.15
✎
21:31
|
(8) получай ОбластьДис как пересечение горизонтальной и вертикальной областей, предварительно задав им имена в макете:
ОбластьДис = Макет.ПолучитьОбласть("ДисГориз|ДисВертик"); |
|||
10
breezee
21.09.15
✎
21:51
|
(9) Теперь вообще ничего не вывело
|
|||
11
breezee
22.09.15
✎
12:31
|
АП
У меня выводит все время строчкой ниже, хотя в СП написано что должно выводить справа |
|||
12
breezee
22.09.15
✎
12:47
|
Может кто примр, только не из СП скинет?
|
|||
13
breezee
22.09.15
✎
13:18
|
ап
|
|||
14
breezee
22.09.15
✎
13:33
|
и еще раз ап
|
|||
15
breezee
22.09.15
✎
13:39
|
Я не понимаю в чем проблема - в сп сказано что будет выводиться справа от последнией области(хотя может быть я не так понял), я вывожу одбласть в таблиичный документ и вывожу то что мне нужно. Но выводится не справа, а снизу, даже если я указал область как пересечение вертикальной и горизонтальной области, или как просто вертикальную и просто горизонтальную. Подкиньте пример вывода динамиечского списка в табличный документ(код), если такой у Вас есть, пожалуйста.
|
|||
16
breezee
22.09.15
✎
13:49
|
ААААААП
|
|||
17
breezee
22.09.15
✎
14:01
|
Последний ап, может просто всем лень читать? Чуть позже пересоздам тему. Вообще не понимаю в чем проблема.
|
|||
18
НЕА123
22.09.15
✎
14:14
|
может не по делу.
смущает >Секция = ТабДок.ПолучитьОбласть("R98C10"); может из макета брать? |
|||
19
breezee
22.09.15
✎
14:16
|
(18) По делу. Меня тоже смущает, я из СП скопировал, но подумал что это ячейка с которой вывод начинается, если я пишу туда область из макета выдает ошибку, я так понял там можно обращаться только к табличному документу
|
|||
20
НЕА123
22.09.15
✎
14:18
|
ОбластьДис = Макет.ПолучитьОбласть("Дис");
ТабДок.Вывести(ОбластьДис); ТЗХРАН = Хран.Получить(); Для итератор = 2 по ТЗХРАН.Колонки.Количество()-1 цикл Секция = ТабДок.Область(98+итератор-2,10); Секция.Область().Текст = "А"+итератор; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; ТабДок.Присоединить(Секция); КонецЦикла; |
|||
21
НЕА123
22.09.15
✎
14:20
|
*
Для итератор = 2 по ТЗХРАН.Колонки.Количество()-1 цикл Секция = ТабДок.Область(98+итератор-2,10); Секция.Область().Текст = "А"+итератор; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; // ТабДок.Присоединить(Секция); //это уже не надо КонецЦикла; |
|||
22
breezee
22.09.15
✎
14:26
|
(21) Выдавало сообщение что нет метода область секции, сделал так
Секция = ТабДок.Область(98+итератор-2,10); Секция.Текст = "А"+итератор; Секция.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; ТабДок.Присоединить(Секция); Все повисло и не отвесает, 2 раза пробовал |
|||
23
НЕА123
22.09.15
✎
14:29
|
>ТабДок.Присоединить(Секция);
надо убрать. |
|||
24
breezee
22.09.15
✎
14:32
|
(23) Извитие, спасибо большое, понял как выводить. ГИГАНТСКОЕ СППАСИБО!
|
|||
25
breezee
22.09.15
✎
16:50
|
Как можно узнать координаты области табличного документа? Т.е. у меня есть область "Дис" он располагается, на пример на (97,10) Как найти 97? Метода координаты или подобного у области не нашел.
Рано обрадовался - выше тоже ничего не фискировано, если там получается слишком много текста - текст затирается динамической таблицей. |
|||
26
breezee
22.09.15
✎
17:32
|
Сейчас мне охото материться. Моя задача ршелась примерно так
Итог = 0; Для К=1 По 10 Цикл ТабДок.Область("R97"+"C1"+(К+1)).Текст = "Строка "+К; ТабДок.Область("R97"+"C1"+(К+1)).Текст = К*10; Итог = Итог+К*10; КонецЦикла; Тут обращение уже к макету, все динамичненько, нормально, в обещем здорово. |
|||
27
breezee
23.09.15
✎
12:14
|
Навряд ли эта хрень кому-нибудь пригодиться, но решения, если совсем ничего не выводит я так и не нашел. Вот костыльное решение вывода динамической тз в печатную форму
//Вывод шапки ТЗХРАН - таблица значений Для итератор = 0 по ТЗХРАН.Колонки.Количество()-1 цикл Секция = Макет.ПолучитьОбласть("R2C2"); Секция.Область().Текст = ТЗХРАН.Колонки[итератор].Имя; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; Секция.Область().АвтоВысотаСтроки = Истина; Секция.Область().ШиринаКолонки = 10; Рамка = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1); Секция.Область().ГраницаСверху = Рамка; Секция.Область().ГраницаСлева = Рамка; Секция.Область().ГраницаСнизу = Рамка; Секция.Область().ГраницаСправа = Рамка; ТабДок.Присоединить(Секция); КонецЦикла; //Вывод разграничителя Секция = Макет.ПолучитьОбласть("R2C2"); Секция.Область().Текст = ""; Секция.Область().ВысотаСтроки=0; ТабДок.Вывести(Секция); //Вывод параметров Колстрок = ТЗХРАН.Количество()-1; КолКолонок = ТЗХРАН.Колонки.Количество()-1; Для ш = 0 По Колстрок цикл для ж = 0 по КолКолонок цикл Секция = Макет.ПолучитьОбласть("R2C2"); Секция.Область().Текст = ТЗХРАН[ш][ж]; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; Секция.Область().АвтоВысотаСтроки = Истина; Секция.Область().ШиринаКолонки = 10; Рамка = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1); Секция.Область().ГраницаСверху = Рамка; Секция.Область().ГраницаСлева = Рамка; Секция.Область().ГраницаСнизу = Рамка; Секция.Область().ГраницаСправа = Рамка; ТабДок.Присоединить(Секция); КонецЦикла; //Вывод разграничителя Секция = Макет.ПолучитьОбласть("R2C2"); Секция.Область().Текст = ""; Секция.Область().ВысотаСтроки=0; ТабДок.Вывести(Секция); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |