Имя: Пароль:
1C
1С v8
СКД Разделения в ТД при нескольких таблицах
, ,
0 Liova
 
07.02.13
10:31
Есть СКД с настройкой из двух таблиц. Получившийся ТД надо серьезно обработать, чтобы он потом красиво сохранился в Excel.

Но встала следующая проблема: Таблицы находятся каждая в своей части ТД и у нее своя ширина колонок, например. Ну или если мышкой выделять сверху вниз ячейки, то выделение "натолкнется" на такую границу.

И, например, если я хочу поменять ширину первой колонки во всей таблице, то

Результат.Область(1,1,ЭлементыФормы.Результат.ВысотаТаблицы,1).ШиринаКолонки = 40;

Работать не будет, ширина поменяется только у "подложки" ТД, а у самих таблиц, которые вывела СКД, ничего не изменится.

Эту проблему можно решить так:

   Для НомерСтроки = 1  По Результат.ВысотаТаблицы Цикл
       Результат.Область(НомерСтроки,1,НомерСтроки,1).ШиринаКолонки = 40;
   КонецЦикла;

Но по смыслу цикл здесь лишний, да и далее мне придется добавлять всё более хитрые вещи в этот ТД и хотелось бы как-то с ним работать, как с обычным ТД, не оглядываясь на то, что он когда-то получен через СКД.
1 Liova
 
07.02.13
10:32
Собственно вопрос, как избавится от этих границ/частей табл документа и где их вообще искать?
2 Defender aka LINN
 
07.02.13
10:36
(1) Выводи 3 ТД и не тилипи моск
3 Liova
 
07.02.13
10:39
(2)Даже в одном ТД с одной таблицей такая фигня будет.
4 mikecool
 
07.02.13
10:43
" чтобы он потом красиво сохранился в Excel. " документ с разными ширинами колонок не сохранится красиво
юзай (2)
5 Liova
 
07.02.13
10:45
(4) Уже сохраняется красиво, опять же обходным путем. Вот так:

Результат.Область().ШиринаКолонки = 12;

А затем увеличиваю ширину первой колонки как в (0)

И опять повторяюсь, что даже если таблица одна, то всё равно будет первая строка из "подложки" и таблица, выведенная СКД и ширина там будет всё равно разная.
6 acsent
 
07.02.13
10:47
получай дерево через скд, выводи ручками в свой макет
7 acsent
 
07.02.13
10:47
кстати ширину колонки можно задавать прямо в скд
8 mikecool
 
07.02.13
10:48
(5) а в экселе это также красиво?
9 Liova
 
07.02.13
10:50
(7) Да можно-можно. Но при этом первая строка всё равно будет другой ширины и в Экселе это будет куча колонок.
(8) После (5) и (0) получается в Экселе красивая таблица, у которой колонки идут не разбитые из-за разной 1С-ной ширины.

Я понимаю, что есть сто способов сделать по-другому. Но всё таки, есть такое дело в Табличном документе, не может же быть такого, что на это нельзя повлиять?
10 acsent
 
07.02.13
10:54
(9) что плохого в тыще колонок в экселе? выглядят то они норм
11 acsent
 
07.02.13
10:55
если этот экселевски
12 acsent
 
07.02.13
10:55
файл предполагается для дальнейшей загрузки, то свой макет однозначно
13 Liova
 
07.02.13
10:56
(10) Туда будут ставить формулы и надо, чтобы колонки шли одна за одной и главное, чтобы две таблицы имели одинаковые номера колонок в своих колонках.
14 mikecool
 
07.02.13
10:57
(9) у тебя в экселе для разных строк получаются колонки разной ширины?
15 acsent
 
07.02.13
10:57
(13) тогда свой макет. Иначе в один день все может перестать работать
16 acsent
 
07.02.13
10:57
(14) эксель разбивает колонки
17 Liova
 
07.02.13
11:01
(15) Да я понимаю, но это как последний вариант, т.к. в СКД уже сделано очень много по условному оформлению и прочее. А про то, что собственно в 1Ске никто отчет и смотреть-то не будет, а работа предполагается в Экселе, я узнал тогда, когда уже всё сделал.

Повторюсь: Есть такое дело при выводе СКД в ТД. Неужели никак нельзя это программно обработать, не верю.
18 Liova
 
07.02.13
12:48
На самом деле посмотрел, что мне осталось сделать и оказалось что это только дополнительные группировки по вертикали.
Т.к. все равно нужно было добавлять в Экселе фиксацию сверху и слева (она не переносится при сохранении mxl`а), то заодно добавил группировку в самом Экселе.

И, честно говоря, не уверен, что смог бы такие же сделать в 1С. Группировки такого вида:

  [-]-------I
Колонка1 Колонка2
  5        13

  [+]
Колонка1
  5