Имя: Пароль:
1C
1С v8
Вывод множества таб. док-ов в один общий таб. док. с сохранением ширины колонок
,
0 TURBOslon
 
20.10.16
10:38
Добрый день. Платформа 8.3.5.1443. Есть печатная форма в которой в зависимости от данных могут не выводится некоторые колонки. Сама по себе печатная форма работает правильно, но есть еще одна обработка, которая использует эту печатную форму для списка документов и выводит  все данные в один табличный документ. Проблема возникает когда в одном документе колонка печатается, а в другом нет, в результате колонка съезжает влево и берет ширину той колонки в которую попала.

Пример:
В макете есть строка с тремя колонками разной ширины

|-----1-----|-2-|-----3-----|

Печатаем первый документ и выводим его в общий таб. док., в нем не должна выводится колонка 3, тогда в результате имеем

Док №1
|-----1-----|-2-|

После этого обрабатывается следующий документ, в нем не должна выводятся колонка 1 и тогда в результате изменяется ширина этих колонок:

Док №1
|-----1-----|-2-|
Док №2
|-----2-----|-3-|

Вопрос собственно в том, как этого избежать? Я так думаю надо как то каждый документ выводить со своей собственной структурой колонок, но ни как не получается. Пробовал методами Начать/ЗакончитьГруппуСтрок/Колонок() отделять каждый документ от предыдущего, но ширина колонок все равно была общая для строк.
1 ptiz
 
20.10.16
10:41
ТабДок2.Область().СоздатьФорматСтрок();
ТабДокОбщий.Вывести(ТабДок2);
2 TURBOslon
 
20.10.16
10:59
(1) пробовал - если для каждого документа так делать, то он возьмет ширину для всех строк по самой верхней строке (у меня там шапка с одним форматом, а строка с другим, т.е. я так сделать не могу), а если брать для каждой присоединяемой области, то вообще как попало выводит т.е. каждая строка выводится постепенно по ячейкам (1ая колонка, 2ая и т.д.), если для каждой ячейки делать формат строк, то они выводятся пустыми, как попало разбитыми и все равно имеют общую ширину с остальными документами.
3 Робинзон Крузо
 
20.10.16
11:00
В каждом макете проделываешь следующий фокус:
1.Выделяешь строки областей
2.Затем тянешь чуть любую колонку
3.вываливается сообщение "Новый формат строк...бла блабла", жмешь "ок"
4. В коде используешь стандартное
ТабДок.Вывести(Обл)
5. Profit!
4 TURBOslon
 
20.10.16
11:01
(3) Макет один и тот же, просто повторяется, в этом и проблема
5 Робинзон Крузо
 
20.10.16
11:02
(4) Можно и в одном макете также сделать для разных групп строк
6 TURBOslon
 
20.10.16
11:27
(5) то ли я путаю, то ли вы - макет один и тот же, строка одна и та же, у строки этой уже измененный формат и выводится она для каждого документа в определенном составе колонок
7 ptiz
 
20.10.16
12:23
(2) Плохо пробовал. У меня таким образом ПКО и РКО выводятся в один таб.документ.
8 TURBOslon
 
25.10.16
08:21
(7) Если для всего документа делать, то по верхней строке все выстраивает, т.е. как попало, но в целом метод рабочий. Я сделал так -
ТабДок.Область(8,,Док.ВысотаТаблицы-8).СоздатьФорматСтрок();
, то есть для определенной области только создаю формат строк и тогда все правильно, эти области становятся независимыми по ширине колонок. Вопрос решен.
9 ptiz
 
25.10.16
10:07
(8) Не совсем так:
1) создаешь один общий объект ТабДокОбщий
2) создаешь другой ТабДок - новый пустой, куда выводишь очередной документ, и для него делаешь .СоздатьФорматСтрок()
3) после этого ТабДокОбщий.Вывести(ТабДок)