Имя: Пароль:
1C
1С v8
Помогите разобраться с печатью динамического списка 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;    
    ТабДок.Вывести(Секция);
КонецЦикла;
Независимо от того, куда вы едете — это в гору и против ветра!