Имя: Пароль:
1C
1С v8
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)не пробовала*
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс