Имя: Пароль:
1C
1С v8
Метод табличного документа Вывести
0 Kalac
 
30.04.13
12:45
Делаю построчный вывод отчета в макет. Метод вывести соответсвенно выводит каждую строку. Но как допустим изменить логику его работы. Допустим хочу выводить строку пропустив при этом две другие или наоборот выше.

Делаю следующее получаю отчет:

Данные1
Данные2
        Данные3
        Данные4
        Данные5

Затем двигаю область и получаю:

Данные1  Данные3
Данные2  Данные4
        Данные5
        Данные4
        Данные5

Соответственно программно чищу две строки:

Данные1  Данные3
Данные2  Данные4
        Данные5

И вывожу какие то данные по след. объекту методом вывести и оп. Они выводятся на две строки ниже. Это никак не обойти?
1 cw014
 
30.04.13
12:49
А заполнять недостающие показатели нулями - не?
2 Kalac
 
30.04.13
12:53
эээ там как бы не недостающие показатели а просто разрывы между частями таблицы. Вот и думаю, что видит метод вывести когда выводит) Точнее что надо очистить или изменить чтобы они начал писать с того места где начинается пустота

Тут дело в том что несколько таких данных у нас и получается
3 Kalac
 
30.04.13
12:53
Данные1  Данные3
Данные2  Данные4
        Данные5
        пусто
        пусто
Данные1  Данные3
Данные2  Данные4
        Данные5
4 cw014
 
30.04.13
12:54
А что за отчет такой, что нельзя предварительно показатели "построить" для вывода как надо?
5 zdas
 
30.04.13
12:54
а перед выводом проверять на "пусто"?
6 Kalac
 
30.04.13
12:57
(5) Оно перед выводом не пусто) затем я делаю

Таб.ВставитьОбласть
Таб.УдалитьОбласть

И в результате перемещения оно перезажает рядом.

Если делать методом присоеднить то придется анализировать кучу условий так как в правой части сложная таблица с группировками
7 cw014
 
30.04.13
12:58
А во второй?
8 cw014
 
30.04.13
12:58
Тем более если у тебя различный набор данных, что тебе мешает к готовому табличному документу присоединить еще один готовый табличный документ?
9 sanja26
 
30.04.13
12:59
высотаТабличногодокумента юзай
10 Kalac
 
30.04.13
12:59
))) а вот тут интересно) разве методом присоединить не строки присоедняются? или мы можем куски документов присоединять как то ?
11 sanja26
 
30.04.13
13:02
ТабДок.ТекущаяОбласть = ТабДок.Область(ТабДок.ВысотаТаблицы + -5, 1);
но не факт, что смещение будет на указанное количество строчек вверх.
Лучше как-то индексировать строки через доп. поле, находить по нему строку, а дальше уже заполнять нужные столбцы
12 Kalac
 
30.04.13
13:03
(11) изменение текущей области на метод Вывести не повлияет)
13 cw014
 
30.04.13
13:06
(10) Выдержка из СП:

"ТабличныйДокумент (SpreadsheetDocument)
Присоединить (Join)
Синтаксис:

Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>)
Параметры:

<Таблица> (обязательный)

Тип: ТабличныйДокумент; ПолеТабличногоДокумента.
Выводимая таблица..."

Заметь тип "ТабличныйДокумент" и подумай. После того как подумаешь, подумай еще раз
14 Kalac
 
30.04.13
13:09
Всё понял) только в моем случае получается присоединить надо вызвать один раз в момент вызова вывести для левой части.
15 Kalac
 
30.04.13
13:09
Ну вобщем вопрос решен)
16 cw014
 
30.04.13
13:10
(14) (15) Как всегда - спасибо многа, 100 р в самый раз
17 Kalac
 
30.04.13
13:33
В итоге выводится всё как:

Данные1  
Данные2  Данные3
        Данные4
        Данные5
18 cw014
 
30.04.13
13:34
(17) И?
19 Kalac
 
30.04.13
13:36
)) и надо как то сгруппировать чтобы правильно соединялось)
20 cw014
 
30.04.13
13:37
Значит не туда "присоединить" засунул
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.