|
Можно ли задать разную ширину колонки в табличном документе |
☑ |
0
kirillkr
01.02.18
✎
09:47
|
Много раз видел в печатных формах 1С разную ширину одной и той же (по номеру порядка) колонки в разных строках. Пытаюсь задать через ШиринуКолонки, но ширина всегда одинаковая и равна ширине из первой строки.
Можно ли программно изменить ширину колонки в конкретной строке, независимо от предыдущих и как это сделать? На что стоит обратить внимание? В одном Табличном документе надо вывести данные двух абсолютно разных таблиц.
|
|
1
DrShad
01.02.18
✎
09:52
|
можно, смотри в типовых печать накладных с кодом/артикулом номенклатуры + со скидками и без
|
|
2
Сияющий в темноте
01.02.18
✎
09:56
|
обычно,делается через обьединение колонок
то есть,мы готовим матрицу коьонок так,чтобы на каждую из вертикальных границ хоть в какой-то строке приходилась граница колонки,а потом полученное дробление обьединяем так,чтобы получились нужные нам строки с колонками
данный метод работает для любой программы с таблицами
|
|
3
catena
01.02.18
✎
09:58
|
Табл = Новый ТабличныйДокумент;
ОблШ = ПолучитьМакет("Макет").ПолучитьОбласть("Шаблон");
ОблС = ПолучитьМакет("Макет").ПолучитьОбласть("Сдвиг");
ОблШ=Табл.Вывести(ОблШ);
ОблШ.ШиринаКолонки = 9;
ОблС=Табл.Вывести(ОблС);
ОблС.ШиринаКолонки = 18;
Табл.Показать();
|
|
4
DrShad
01.02.18
✎
10:01
|
(2) конечно же имеет право на жизнь, но извращение еще то
|
|
5
kirillkr
01.02.18
✎
10:22
|
(1) да вот пересмотрел, но так и не понял. Грубо говоря они там изменяют ширину колонки в зависимости от того, надо выводить какие-то данные или нет..
Они это делают для указания одинаковой ширины всех строк? Т.е. мне надо задать ширину колонок так, чтобы ширина всех колонок в строках была одинаковой?
(2) обычно так и делаю, но тут я даже предопределенный макет не использую, т.к. данные могут быть абсолютно разными. Просто беру первую строчку табличного документа как область, а дальше меняю размеры и вывожу данные по колонкам.
|
|
6
1Сергей
01.02.18
✎
10:27
|
СоздатьФорматСтрок
|
|
7
kirillkr
01.02.18
✎
11:12
|
(6) Сергей, СПАСИБО за подсказку. Взял пример из справки к этой функции и все заработало. Пришлось сначала все вывести в новый (другой табличный документ), а затем его, как в примере, вставить нужный... Попробую поиграться с этим без создания нового документа. Пока не получилось.
|
|
8
kirillkr
01.02.18
✎
12:39
|
Спасибо. Все получилось. Убрал доптабличные документ.
//Перед добавлением новых данных запоминаем номер строки
НачалоНовогоФорматаСтрок = ТабДокумент.ВысотаТаблицы + 1;
//Здесь идет вывод данных
ТабДокумент.Область(НачалоНовогоФорматаСтрок, , ТабДокумент.ВысотаТаблицы, ).СоздатьФорматСтрок();
//После этого задаем размеры каждой КОЛОНКИ для начальной строки блока с другими размерами
ТабДокумент.Область(НачалоНовогоФорматаСтрок, 2).ШиринаКолонки = 10;
|
|
9
1Сергей
01.02.18
✎
13:11
|
(8) Респект, что сам допёр. Побольше бы таких :)
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший