Имя: Пароль:
1C
1С v8
Можно ли задать разную ширину колонки в табличном документе
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) Респект, что сам допёр. Побольше бы таких :)