Created
October 7, 2019 10:08
-
-
Save a-sitnikov/ee5b952228dc7a5145234630e6cfe1d9 to your computer and use it in GitHub Desktop.
Вывод таблицы значений в табличный документ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Процедура ВывестиТаблицу(ТабДок, Таблица, АвтоопределениеШирины = Истина, МинШирина = 10) Экспорт | |
ШиринаКолонок = Новый Массив; | |
Макет = Новый ТабличныйДокумент; | |
Область = Макет.Область("R1:R2"); | |
Область.СоздатьФорматСтрок(); | |
Для Счетчик = 1 По Таблица.Колонки.Количество() Цикл | |
Колонка = Таблица.Колонки[Счетчик - 1]; | |
ОбластьШапка = Макет.Область(1, Счетчик); | |
ОбластьШапка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Текст; | |
ОбластьШапка.Текст = Колонка.Имя; | |
ОбластьШапка.ЦветФона = ЦветаСтиля.ЦветФонаШапкиОтчета; | |
ОбластьШапка.ЦветРамки = ЦветаСтиля.ЦветЛинииОтчета; | |
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1); | |
ОбластьШапка.Обвести(Линия, Линия, Линия, Линия); | |
ОбластьСтрока = Макет.Область(2, Счетчик); | |
ОбластьСтрока.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр; | |
ОбластьСтрока.Параметр = Колонка.Имя; | |
ОбластьСтрока.ПараметрРасшифровки = Колонка.Имя; | |
ОбластьСтрока.ЦветРамки = ЦветаСтиля.ЦветЛинииОтчета; | |
ОбластьСтрока.Обвести(Линия, Линия, Линия, Линия); | |
Область = Макет.Область(1, Счетчик, 2, Счетчик); | |
Область.ШиринаКолонки = Макс(МинШирина, СтрДлина(Колонка.Имя)); | |
ШиринаКолонок.Добавить(Область.ШиринаКолонки); | |
КонецЦикла; | |
Область = Макет.ПолучитьОбласть("R1"); | |
ТабДок.Вывести(Область); | |
ПерваяСтрока = ТабДок.ВысотаТаблицы; | |
ТабДок.НачатьГруппуСтрок("Таблица"); | |
Область = Макет.ПолучитьОбласть("R2"); | |
Для каждого СтрокаТЗ из Таблица Цикл | |
Область.Параметры.Заполнить(СтрокаТЗ); | |
ТабДок.Вывести(Область); | |
Если АвтоопределениеШирины Тогда | |
Для Счетчик = 0 По ШиринаКолонок.Количество() - 1 Цикл | |
Колонка = Таблица.Колонки[Счетчик]; | |
Значение = СтрокаТЗ[Колонка.Имя]; | |
Ширина = СтрДлина(СокрЛП(Значение)); | |
Если Ширина > ШиринаКолонок[Счетчик] Тогда | |
ШиринаКолонок[Счетчик] = Ширина; | |
КонецЕсли; | |
КонецЦикла; | |
КонецЕсли; | |
КонецЦикла; | |
ПоследняяСтрока = ТабДок.ВысотаТаблицы; | |
ТабДок.ЗакончитьГруппуСтрок(); | |
Если АвтоопределениеШирины Тогда | |
Для Счетчик = 1 По ШиринаКолонок.Количество() Цикл | |
Область = ТабДок.Область(ПерваяСтрока, Счетчик, ПоследняяСтрока, Счетчик); | |
Область.ШиринаКолонки = ШиринаКолонок[Счетчик - 1] * 0.85; | |
КонецЦикла; | |
КонецЕсли; | |
КонецПроцедуры |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment