в табличный документ ограничений нет, ни кто не мешает объединять ячейки .Объединить()
типа сначала подготовить обе(несколько) эти строчки в отдельном табдоке, там объединить и потом вывести?
выводим а потом объединяем
ну то понятно. я о другом спрашивал. ты как делаешь в отдельный табдок выводишь?
тогда надо помнить с какой строки надо эту область ловить
я ее в массив помещаю временный
скинь код если не очень далеко, плз
Функция ОбработатьЗаголовки(ТабДок) ВысотаФ = ТабДок.ФиксацияСверху; ШиринаФ = ТабДок.ФиксацияСлева; ШиринаТаблицы = ТабДок.ШиринаТаблицы; МассивМассивовОбъединяемыхОбластей = Новый Массив; МассивОбъединяемыхОбластей = Новый Массив; НачальнаяКолонка = ШиринаФ + 1; КонечнаяКолонка = ШиринаТаблицы; МассивОбъединяемыхОбластей.Добавить(Новый Структура("НачальнаяКолонка, КонечнаяКолонка", НачальнаяКолонка, КонечнаяКолонка)); МассивМассивовОбъединяемыхОбластей.Добавить(МассивОбъединяемыхОбластей); Строка = 1; Пока Строка <= ВысотаФ Цикл Если Строка = МассивМассивовОбъединяемыхОбластей.Количество() Тогда Для Каждого ОбъединяемаяОбласть Из МассивМассивовОбъединяемыхОбластей[Строка-1] Цикл НачальнаяКолонка = ОбъединяемаяОбласть.НачальнаяКолонка; КонечнаяКолонка = ОбъединяемаяОбласть.КонечнаяКолонка; Колонка = НачальнаяКолонка; Пока Колонка <= КонечнаяКолонка Цикл Если НЕ ОбъединятьЯчейки(ТабДок, Строка, Колонка) ИЛИ Колонка = КонечнаяКолонка Тогда Если Колонка <> НачальнаяКолонка Тогда МассивОбъединяемыхОбластей.Добавить(Новый Структура("НачальнаяКолонка, КонечнаяКолонка", НачальнаяКолонка, Колонка)); КонецЕсли; НачальнаяКолонка = Колонка + 1; КонецЕсли; Колонка = Колонка + 1; КонецЦикла; КонецЦикла; Если МассивОбъединяемыхОбластей.Количество() = 0 И ОбъединяемаяОбласть.НачальнаяКолонка = ШиринаФ + 1 И ОбъединяемаяОбласть.КонечнаяКолонка = ШиринаТаблицы Тогда МассивОбъединяемыхОбластей.Добавить(Новый Структура("НачальнаяКолонка, КонечнаяКолонка", ОбъединяемаяОбласть.НачальнаяКолонка, ОбъединяемаяОбласть.КонечнаяКолонка)); КонецЕсли; МассивМассивовОбъединяемыхОбластей.Добавить(МассивОбъединяемыхОбластей); МассивОбъединяемыхОбластей = Новый Массив; КонецЕсли; Строка = Строка + 1; КонецЦикла; Строка = 1; Пока Строка < МассивМассивовОбъединяемыхОбластей.Количество() Цикл Для Каждого ОбъединяемаяОбласть Из МассивМассивовОбъединяемыхОбластей[Строка] Цикл ТекстЗаголовка = ТабДок.Область(Строка, ОбъединяемаяОбласть.НачальнаяКолонка).Текст; ОбъединяемаяОбласть = ТабДок.Область(Строка, ОбъединяемаяОбласть.НачальнаяКолонка, Строка, ОбъединяемаяОбласть.КонечнаяКолонка); ОбъединяемаяОбласть.Объединить(); ОбъединяемаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; ОбъединяемаяОбласть.Текст = ТекстЗаголовка; КонецЦикла; Строка = Строка + 1; КонецЦикла; Возврат ТабДок; КонецФункции Функция ОбъединятьЯчейки(ТабДок, Строка, НачальнаяКолонка) Ячейка = ТабДок.Область(Строка, НачальнаяКолонка); ЯчейкаСлед = ТабДок.Область(Строка, НачальнаяКолонка+1); Если ПустаяСтрока(Ячейка.Текст) Тогда Возврат ложь ИначеЕсли Ячейка.Текст = ЯчейкаСлед.Текст И Ячейка.Верх = Ячейка.Низ И ЯчейкаСлед.Верх = ЯчейкаСлед.Низ Тогда Возврат Истина; Иначе Возврат ложь; КонецЕсли; КонецФункции
спасибо. чё та капец сложности
Обсуждают сегодня