Имя: Пароль:
1C
1С v8
Формирование табличного документа из двух разных макетов
0 Dmitriy_
Kolesnikov
 
01.11.17
22:28
ТабДок = новый ТабличныйДокумент;
Макет1 = ПолучитьМакет("Макет1");
Область = Макет1.ПолучитьОбласть(ИмяОбласти1);
ТабДок.Вывести(Область);
Макет2 = ПолучитьМакет("Макет2");
Область = Макет2.ПолучитьОбласть(ИмяОбласти2);
ТабДок.Вывести(Область);

При этом на выводе мы имеем, что то, что выводится из макета2, имеет ту же самую ширину колонок, что в макете1, а вовсе не ту, что я задал в макете2. Как с этим бороться? Может быть, есть какой-то разделитель табличного документа?
Просто фигачить всё из одного макета очень неудобно - слишком разные наборы и размеры колонок.
1 jsmith82
 
01.11.17
22:38
Создай для строк свой формат
2 DrShad
 
01.11.17
23:17
выводи не область а второй таб док и будет тебе счастье
3 Dmitriy_
Kolesnikov
 
02.11.17
12:24
Макет2 = ПолучитьМакет("Макет2");
Область = Макет2.ПолучитьОбласть(ИмяОбласти2);
ТабДокВрем.Вывести(Область);
ТабДок.Вывести(ТабДокВрем);


так?
4 DrShad
 
02.11.17
12:50
почти, лучше все таки из временного таб дока при выводе в основной брать область по высоте и ширине таблицы
5 Dmitriy_
Kolesnikov
 
02.11.17
14:52
(4) Это как?
Способ из (3) проблему не решает, проверил.
6 FIXXXL
 
02.11.17
14:56
(0) можешь в одном Макете сделать две области именованные и внутри них уже играть с шириной колонок независимо
можешь сделать микроколонки и объединять их
7 Fish
 
02.11.17
14:58
(6) "сделать микроколонки и объединять их" - Только этим лучше не увлекаться. Сильно тормозит вывод.
8 Ust89
 
02.11.17
15:03
я тоде все делала как микроколонки
9 toypaul
 
гуру
02.11.17
15:05
чот я сомневаюсь что есть программный функционал того как в конфигураторе можно задать разные ширины колонок в макете. сильно сомневаюсь.
10 Dmitriy_
Kolesnikov
 
02.11.17
15:16
(6) благодарю за идею.
Описание здесь:
v8: Именованные области в макете
Просто разбиваю ячейки.
Хотелось бы конечно понять, как решить задачу в (0) (на будущее), но и на том спасибо.
11 FIXXXL
 
02.11.17
15:34
(10) я, к сожалению, эту бубуйню с шириной так и не смог забороть, когда вывод ШК на ПФ рисовал... "нижний" все одно к "верхнему" приводится
12 Fish
 
02.11.17
15:35
(9) А зря сомневаешься.
13 Dmitriy_
Kolesnikov
 
02.11.17
15:48
(12) в макете-то можно.
А в табличном документе, куда потом это всё выводится?
Он же, сука, ширины всех колонок берёт так, как в самой первой своей строке.
Вот если бы в табличном документе был какой-то разделитель, отмечающий, что до строки Х у нас одна таблица, а после - другая, с другой структурой колонок... это было бы дело.
14 Fish
 
02.11.17
15:51
(13) "если бы в табличном документе был какой-то разделитель, отмечающий, что до строки Х у нас одна таблица, а после - другая, с другой структурой колонок... " - Это легко реализовать программно. Я так выводил отчёт из 12-ти таблиц - у каждой разное кол-во колонок, и соответственно, разная ширина колонок, чтобы на страницу одинаково влезали.
15 Fish
 
02.11.17
15:54
+(14) А делается это при помощи:
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
СоздатьФорматСтрок (CreateFormatOfRows)
Синтаксис:

СоздатьФорматСтрок()
Описание:

Создает у области новый формат строк. В новом формате строк размеры колонок будут соответствовать размерам колонок, которые были установлены в области.
16 Ёпрст
 
02.11.17
15:58
(14) надо попробовать , никогда не было надобности.
Так-то через копи-пасте и так вставляются, через специальную вставку (там тоже указывать с форматом строк галку)
17 FIXXXL
 
02.11.17
16:11
(15) о! попробую при случае, спасибо

вообще этот ТабДок - мутный объект, интуитивно хрен чего поймешь...
18 FIXXXL
 
02.11.17
16:14
(17) + я, когда мутил вывод ШК, как только не извращался с шириной программно, но один фиг - сбивалась к "верхнему"
19 Ёпрст
 
02.11.17
16:18
Только один хрен, после СоздатьФорматСтрок  придётся ширину ручками выставлять в этой новой области. Че не сделать было сразу в методе Вывести  - параметр, типа сохранить формат ячеек.
И было бы как в Специальной вставке в меню.
20 Fish
 
02.11.17
16:26
(19) "после СоздатьФорматСтрок придётся ширину ручками выставлять в этой новой области" - Ну это да.
21 1dvd
 
02.11.17
16:39
(19) легко делается небольшим циклом