![]() |
![]() |
![]() |
|
Объединить области печатной формы | ☑ | ||
---|---|---|---|---|
0
redbull
12.08.10
✎
11:45
|
Есть области "Шапка|Общее", "Шапка|Колонка"
Область "Шапка|Колонка" может быть присоединена несколько раз: Как мне объединить все области или часть из них. |
|||
1
Ёпрст
гуру
12.08.10
✎
11:47
|
(0) вот так:
http://webfile.ru/4662397 |
|||
2
Sserj
12.08.10
✎
11:51
|
Перед выводом первой ШапкаКолонка запоминаешь номер колонки, после последней создаешь новую Область нужной ширины и используешь ее метод Объединить.
|
|||
3
Ёпрст
гуру
12.08.10
✎
11:53
|
(2) за такой метод надо по шапке давать, если его применяют к строкам таблицы, а не только к шапке...
|
|||
4
redbull
12.08.10
✎
11:56
|
(1)хрень какая-то. Так ведь не должно работать.
(2) Объединить - это не в 8-ке |
|||
5
Sserj
12.08.10
✎
11:58
|
(3) в 1 фигня полная.
Где там именно объединение? Где там выравнивание допустим по центру строки будет? (4) У тебя же в заголовке v7 вот справка из 77: Объединить Объединить ячейки области. Синтаксис: Объединить() Англоязычный синоним: Merge Описание: Метод Объединить объединяет ячейки области. Пример: Таб = СоздатьОбъект("Таблица"); Таб.Открыть("tabl_l.mxl"); ВыбОбласть = Таб.Область("R1C1:R8C4"); ВыбОбласть.Объединить(); |
|||
6
Ёпрст
гуру
12.08.10
✎
12:23
|
(5) молод ты еще.
|
|||
7
Ёпрст
гуру
12.08.10
✎
12:24
|
+6 и выравнивание там нормальное.
|
|||
8
Ёпрст
гуру
12.08.10
✎
12:24
|
а за объединенные ячейки .. нужно как минимум стучать по шапке, а в лучшем случае - уволить.
|
|||
9
Sserj
12.08.10
✎
12:26
|
(6) Ну аргументируй!
Только не типа "код нечитабельный", с нормальными комментариями никаких трудностей. |
|||
10
1Сергей
12.08.10
✎
12:32
|
(9) Открой для себя галку "По выделенным столбцам"
|
|||
11
Ёпрст
гуру
12.08.10
✎
12:33
|
(9) объединенные ячейки - это смерть для мокселя.
Мега тормоз при формировании таблицы + мегатормоз при её листинге + мегатормоз при печати + мегатормоз при сохранении/печати. |
|||
12
Ёпрст
гуру
12.08.10
✎
12:34
|
+11 исключение - если только объединять по вертикали и в шапки.. но по возможности, этого нужно избегать.
|
|||
13
redbull
12.08.10
✎
12:43
|
(2) Действительнос есть такой метод
(11) У меня логотип и неизвестное количество столбцов с ценой, чтобы это красиво выглядело, нужно шапку объединить: http://shop.technolink.ru/price/TL_Price.zip |
|||
14
1Сергей
12.08.10
✎
12:45
|
(13) ничего там не надо объединять нужно в правой колонке всё выводить с выравниванием по правому краю
|
|||
15
Ёпрст
гуру
12.08.10
✎
12:45
|
(13) и чего ?
выводишь шапку целиком вместе с логотипом, затем выводишь ниже заголовок таблицы через ПрисоединитьСекцию + галка по выделенным столбцам и привет.. |
|||
16
1Сергей
12.08.10
✎
12:46
|
(14)* Ничего там не надо объединять. Нужно в правой колонке и всё выводить, с выравниванием по правому краю
|
|||
17
redbull
12.08.10
✎
12:48
|
(15), (16)прайс формируется по ночам в обработке "ОбработкаОжидания". не вручную
|
|||
18
Ёпрст
гуру
12.08.10
✎
12:50
|
(17 ) и ??
вот не пофик ли откуда он формируется. |
|||
19
Sserj
12.08.10
✎
12:50
|
(11) Пример можно или ссылку на обсуждение этого вопроса. Ни разу не встречалось подобное явление.
(10) Чем это отличается от Объединения, кроме аргумента (11), который представляется спорным. Всеравно же нужно делать программно. |
|||
20
Ёпрст
гуру
12.08.10
✎
12:51
|
(19) см.(6) ..
да и в поиск можно послать. |
|||
21
Sserj
12.08.10
✎
12:54
|
(20) Очень веская аргументация :)
Видимо цвет полоски спокойно общаться не дает :) |
|||
22
FN
12.08.10
✎
12:59
|
(21) Сделай две одинаковых таблички на пару тысяч строк - в одной в строках делай объединение, в другой галку. А потом с секундомером сохрани их интерактивно в xls. Все вопросы отпадут
|
|||
23
Cthulhu
12.08.10
✎
13:04
|
подтверждаю мнение г-на Ёпрст-а.
объединение ячеек по горизонтали идёт лесом - галка "по выделенным ячейкам" в свойствах ячейки решает все вопросы. объединение ячеек по вертикали - тоже зло, но без него бывает не обойтись. |
|||
24
redbull
12.08.10
✎
13:16
|
(20), (23) как сделать, чтобы адрес был выровнен по колонке I, а не H?
|
|||
25
Cthulhu
12.08.10
✎
13:24
|
(24): в макете выравнивание соответств.ячеЕК сделать "по выделенным ячейкам".
|
|||
26
Sserj
12.08.10
✎
13:31
|
Итак результаты теста!
|
|||
27
Sserj
12.08.10
✎
13:31
|
Тест произведен при помощи следующей процедуры:
Процедура Сформировать() ВремяСтарта = _GetPerformanceCounter(); Таб = СоздатьОбъект("Таблица"); Для Сч=1 По 5000 Цикл Таб.ВывестиСекцию("Осн|Стр"); Для СчКол = 1 по 100 Цикл Таб.ПрисоединитьСекцию("Стр|Осн"); КонецЦикла; ОблТаб = Таб.Область("R" + Сч + "C1:R" + СЧ + "C101"); ОблТаб.Объединить(); ОблТаб.ГоризонтальноеПоложение(3); ОблТаб.Текст = "Тестовый текст"; Если флРасшифровка = 1 Тогда ОблТаб.Расшифровка(ВыбНоменклатура); КонецЕсли; КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Тест1"); ВремяОкончания = _GetPerformanceCounter(); ВремяВариантаОбъединить = ВремяОкончания - ВремяСтарта; Сообщить("Вариант Объединить():" + ВремяВариантаОбъединить); ВремяСтарта = _GetPerformanceCounter(); Таб = СоздатьОбъект("Таблица"); Для Сч=1 По 5000 Цикл Таб.ВывестиСекцию("Осн|Стр"); Для СчКол = 1 по 100 Цикл Таб.ПрисоединитьСекцию("Осн|Стр"); КонецЦикла; ОблТаб = Таб.Область("R" + Сч + "C1:R" + СЧ + "C1"); ОблТаб.Текст = "Тестовый текст"; ОблТаб = Таб.Область("R" + Сч + "C1:R" + СЧ + "C101"); ОблТаб.ГоризонтальноеПоложение(7); Если флРасшифровка = 1 Тогда ОблТаб.Расшифровка(ВыбНоменклатура); КонецЕсли; КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Тест2"); ВремяОкончания = _GetPerformanceCounter(); ВремяВариантаПоВыделенному = ВремяОкончания - ВремяСтарта; Сообщить("Вариант ПоВыделенному():" + ВремяВариантаПоВыделенному); Сообщить("Разница: " + (ВремяВариантаОбъединить - ВремяВариантаПоВыделенному)); КонецПроцедуры |
|||
28
Sserj
12.08.10
✎
13:32
|
ФлРасшифровка - флажок на форме.
ВыбНоменклатура - реквизит формы. |
|||
29
Sserj
12.08.10
✎
13:35
|
Без разшифровки:
Вариант Объединить():26944 Вариант ПоВыделенному():9987 Разница: 16957 С Расшифровкой: Вариант Объединить():27249 Вариант ПоВыделенному():11193 Разница: 16056 Итого ПоВыделенному явно выигрывает в несколько раз (Признаю ошибку!) НО!!! При варианте с расшифровкой наблюдаются ощутимые тормоза в варианте ПоВыделенному! Так что все зависит от задачи :) |
|||
30
Sserj
12.08.10
✎
13:35
|
+(29) Тормоза наблюдаются в варианте ПоВыделенному при прокрутке таблицы и при сохранении.
|
|||
31
FN
12.08.10
✎
13:49
|
Усложни задачу - там где объединяется пиши разный длинный текст в ячейки и свойства - высота "Авто" и "Переносить", в табличке "с галкой" сделай высоту строк фиксированную (например 11 пунктов) - в теории разница во времени выполнения будет еще больше
|
|||
32
Ёпрст
гуру
12.08.10
✎
13:54
|
(27) да уж..
1.ОблТаб = Таб.Область("R" + Сч + "C1:R" + СЧ + "C1"); //Это полный ПЭ.. Открой для себя Область(,,,,) - указание области через задание начальной/конечной строки, начального/конечного столбца. 2.Расшифровку нужно прописать сразу в макете, а не через область, при выводе секции, либо Расшифровка = <Значение> либо пусто, по условию. |
|||
33
Ёпрст
гуру
12.08.10
✎
13:55
|
+32 ну и ГоризонтальноеПоложение для "по выделенным" столбцам нужно устанавливать сразу в макете, а не потом через область.
|
|||
34
Ёпрст
гуру
12.08.10
✎
13:56
|
+33 И Текст тоже..
В общем, даже по коду видно, что с Таблицами ты плотно не работал.. |
|||
35
Cthulhu
12.08.10
✎
13:58
|
(34): это просто другая методика работы.
не макетная. |
|||
36
Ёпрст
гуру
12.08.10
✎
14:00
|
(35) да я вижу.. один хрен, так лучше не писать..
|
|||
37
Sserj
12.08.10
✎
14:01
|
(32) Я покрайне провожу эксперименты, когда сомневаюсь.
ОблТаб = Таб.Область("R" + Сч + "C1:R" + СЧ + "C1") Введено исключительно ради установки текста в первую колонку, иначе текст пишется в каждой ячейке без объединения. По второму пункту - вопрос именно в полностью программном построении таблицы. |
|||
38
redbull
12.08.10
✎
14:02
|
(34)
1)Что такое Таб = Таблица. Той обработке, которую ты как пример выложил. Попробовал в др месте сделать, 1С ругнулась? 2)Как таблицу на форму поместил? |
|||
39
Sserj
12.08.10
✎
14:03
|
(34) Повторяю на всякий случай - таблица для чистоты эксперимента должна строиться только программно.
А по поводу таблиц - опять же не меряйся сантиметрами и полосками. Хоть выигрыш и в 2 раза, но реально на отчетах этого не заметишь, так как всеравно это мизер по сравнению с подготовкой данных. |
|||
40
Ёпрст
гуру
12.08.10
✎
14:03
|
(37) еще раз - открой для себя
Область(<?>) Area(<?>) Синтаксис: Область(<R1>,<C1>,<R2>,<C2>) Назначение: Возвращает значение типа ''ОбластьТаблицы'' области выходной таблицы или таблицы в режиме ввода данных. Параметры: <R1> - необязательный параметр. Номер первой строки области. <C1> - необязательный параметр. Номер первого столбца области. <R2> - необязательный параметр. Номер последней строки области. <C2> - необязательный параметр. Номер последнего столбца области. чтоб не писать ("R" + Сч + "C1:R" + СЧ + "C1") |
|||
41
Sserj
12.08.10
✎
14:05
|
(40) Вот муторный :)
Если сделаешь Обл = Таб.Область(Rx,C1,Rx,C101); А потом Обл.Текст = "Что-то" То при Обл.ГоризонтальноеПоложение(7) Текст будет всеравно повторяться в КАЖДОЙ ячейке. |
|||
42
Ёпрст
гуру
12.08.10
✎
14:05
|
(38) ты за 2 года не видел Пустую таблицу или РВД ?
Регламентированной отчетность в глаза хоть видел ? :)) Меню-Действия-Свойства формы.. там 3 вида таблиц - обычная, пустая и рвд |
|||
43
Ёпрст
гуру
12.08.10
✎
14:06
|
(41) алё, не надо мне про прописные истины говорить.. см (36)
|
|||
44
redbull
12.08.10
✎
14:07
|
(42) Спасибо, видел, но не пользовался.
|
|||
45
Sserj
12.08.10
✎
14:07
|
(36) Вопрос привычки, мне так удобней - можно формировать строку заранее и передавать ее в нужные процедуры форматирования.
|
|||
46
Ёпрст
гуру
12.08.10
✎
14:10
|
в разы быстрее выводить заранее подготовленные секции, чем после вывода секции в результирующую таблицу делать что-то с ней через область.
|
|||
47
Sserj
12.08.10
✎
14:12
|
(46) Да быстрее и главное легче, но вопрос то в том что иногда без этого просто никак.
|
|||
48
Sserj
12.08.10
✎
14:13
|
(46) И вопрос даже может быть не в том как выводить, а в том чтобы делать с таблицей что-то после вывода уже. И тут никакие секции не спасут, кроме как ручками.
|
|||
49
Franchiser
гуру
12.08.10
✎
15:22
|
(47) не пойму смысла всего этого, если в коде объединять вертикальные секции а потом сохранить в эксель, они будут не объединенными, если объединять горизонтальные секции все ок, но лучше делать как ЕПРСТ, или у вас все хранится в mxl?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |