|
v8: Передача табличных частей 1с в ОО |
☑ |
0
Карась
14.08.12
✎
13:59
|
Здравствуйте,у меня есть вопрос. Я заполняю документ ОО из 1с, из табличной части документа, я в ОО передаю таблицу, а можно вместо того, чтобы передавать таблицу в закладку, просто построчно переписать в нее строки из табличной части.
Вот так я передаю табличную часть в закладку
ТЗ=Объект.ИТС.Выгрузить();
Закладки19=ТЗ;
ТаблицаООО=Document.createInstance("com.sun.star.text.TextTable");
ТаблицаООО.initialize(ТЗ.Количество(),ТЗ.Колонки.Количество()-1);
Курсор19.gotoRange(Якорь19, 0);
Курсор19.CharPosture=0;
Курсор19.setPropertyValue("CharWeight",0);
Текст.insertTextContent(Курсор19,ТаблицаООО,0);
Для Сч=1 По ТЗ.Количество() Цикл
Колонки=ТЗ.Колонки;
Колонки1= Колонки.Количество()-1;
Для Кол=1 По Колонки1 Цикл
Ячейка=ТаблицаООО.getCellByPosition((Кол-1),(Сч-1));
Ячейка.getText().setString(""+ТЗ.Получить(Сч-1).Получить(Кол-1));
КонецЦикла;
|
|
1
smaharbA
14.08.12
✎
14:29
|
можно
Строки=ТаблицаОО.getRows();
Строки.insertByIndex(1,1);
Строки.insertByIndex(2,1);
|
|
2
Карась
14.08.12
✎
16:26
|
(1)О здорово, спасибо, попробую сделать)
|
|
3
Карась
14.08.12
✎
16:52
|
Я пока так написала, но не работает их же тоже надо в цикле обходить?
Для Сч=1 По ТЗ.Количество() Цикл
Колонки=ТЗ.Колонки;
Колонки1= Колонки.Количество()-1;
Для Кол=1 По Колонки1 Цикл
Ячейка=ТаблицаООО.getCellByPosition((Кол-1),(Сч-1));
Строки=ТаблицаООО.getRows();
Ячейка.getText();
Ячейка.getText();
Строки.insertByIndex((Кол-1),(Сч-1));
КонецЦикла;
КонецЦикла;
|
|
4
smaharbA
14.08.12
✎
16:53
|
(3) нет, это неверный код
|
|
5
smaharbA
14.08.12
✎
16:54
|
в сабже вроде рабочий вариант, а так понял нужно при обходе ТЧ заполнять таблицу во врайтере последовательно ?
(опять руководитель Ваш бредит ?)
|
|
6
Карась
14.08.12
✎
16:56
|
(5)При обходе табличной части вынимать из не строки и просто вписывать их в закладку и все
Ну у меня документ такой, у него так заполняется((
|
|
7
smaharbA
14.08.12
✎
16:58
|
т.е. без таблицы ?
а просто каждая строка с новой строки ?
|
|
8
Карась
14.08.12
✎
16:58
|
Да
|
|
9
smaharbA
14.08.12
✎
17:34
|
Что бы не париться с методами ООо (подозреваю, что Ваш обдолбанный руководитель не поймет простоты)
Стр="";
Для Сч=1 По ТЗ.Количество() Цикл
Колонки=ТЗ.Колонки;
Для Кол=1 По ТЗ.Колонки.Количество() Цикл
Стр=Стр+""+""+ТЗ.Получить(Сч-1).Получить(Кол-1)+Симв(9);
КонецЦикла;
Стр=Стр+Симв(10);
КонецЦикла;
Якорь.setString(Стр);
|
|
10
Карась
14.08.12
✎
17:41
|
(9)Получилось! Вы снова меня выручили!!!Спасибо огромное!!
|
|
11
smaharbA
14.08.12
✎
17:44
|
и все же заставьте купить нормальный софт - микрософт офис
|
|
12
Карась
14.08.12
✎
17:50
|
(11)я постараюсь, просто я там на практике всего 4 недели,так что пока ничего предлагать непробовала
|
|
13
Карась
14.08.12
✎
17:51
|
(12)не пробовала*
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший