ЗаписьТабличногоДокумента
Стд::ТабличныйДокумент::ЗаписьТабличногоДокумента Базовые типы: Объект |
Доступность: Сервер |
Иерархия типа
graph TD;
ЗаписьТабличногоДокумента["ЗаписьТабличногоДокумента"]-->Объект["Объект"];
Объект для записи табличного документа. Позволяет выводить области и табличные документы в режиме потока данных, то есть формировать табличный документ область за областью.
Пример
// Области макета: шапка, шапка таблицы, строчка таблицы (столбцы: номер, номенклатура, количество, цена), подвал.
// Необходимо добавить сумму для товара и возможность указать дату в шапке.
пер Макет = ПолучитьМакетТабличногоДокумента()
пер Табдок = новый ТабличныйДокумент()
пер Писатель = ТабДок.Запись
// Задекларируем шаблон в шапке.
пер ЗаголовокШапка = Макет.ПолучитьОбласть("R1C1:R1C3")
если ЗаголовокШапка.ВидЗаполнения == ВидЗаполненияОбластиТабличногоДокумента.Текст
ЗаголовокШапка.УстановитьТекст(Шапка.Текст + " от [ДатаФормирования]", Истина)
;
// Выводим шапку с шаблоном
пер Шапка = Макет.ПолучитьОбласть("Шапка")
Писатель.ВывестиВертикально(Шапка.ВВыводимуюОбласть.УстановитьПараметры({"ДатаФормирования": "10.11.2022"}))
// Добавим название колонки в шапку таблицы.
пер ШапкаТаблицыОбласть = Макет.ПолучитьОбласть("R3C6")
ШапкаТаблицыОбласть.УстановитьТекст("Сумма")
// Вывод шапки таблицы.
пер ШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы")
Писатель.ВывестиВертикально(ШапкаТаблицы)
// Задекларируем имя параметра в области строки таблицы.
пер ДопКолонка = Макет.ПолучитьОбласть("R4C6")
ДопКолонка.УстановитьИмяПараметра("Сумма")
// Получим область строки таблицы.
пер ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("Таблица")
// Выведем строки таблицы.
пер Номер = 1
для Название из Названия()
пер ВыводимаяОбласть = ОбластьСтрокаТаблицы.ВВыводимуюОбласть()
ВыводимаяОбласть.УстановитьПараметры({"Номер": Номер,
"Номенклатура": Название,
"Количество": Количество(Название),
"Цена": Цена(Название),
"Сумма": Количество(Название) * Цена(Название)})
Писатель.ВывестиВертикально(ВыводимаяОбласть)
Номер += 1
;
Сравнение ссылочное
Методы
ВывестиВертикально
ВывестиВертикально(Область: ТабличныйДокумент|ОбластьТабличногоДокумента|ВыводимаяОбластьТабличногоДокумента): ОбластьТабличногоДокумента
Доступность: Сервер |
Чтобы вывести значение параметра области в числовом формате (например, при экспорте табличного документа в excel), необходимо в макете установить горизонтальное положение содержимого области в значение “Право”.
Выводит область вертикально (то есть вниз), помещая её со следующей строки вслед за самой нижней выведенной строкой, начиная с первой колонки.
Исключения
ИсключениеНедопустимыйАргумент
- при попытке вывода табличного документа в самого себя.
Примеры
метод ВывестиОбластьСЛого()
знч Параметры = {
"НазваниеОрганизации": НазваниеОрганизации
}
исп ПотокЛоготипа = новый Файл("logo.png").ОткрытьПотокЧтения()
знч БайтыЛоготипа = ПотокЛоготипа.ПрочитатьКакБайты()
пер ДанныеВыводаЛоготипа = новый ДанныеВыводаИзображения("ЛоготипОрганизации")
ДанныеВыводаЛоготипа.ДанныеИзображения = БайтыЛоготипа
пер РезультатТабДок = новый ТабличныйДокумент()
пер Писатель = РезультатТабДок.Запись
пер ВыводимаяОбласть = ОбластьЗаголовкаСЛоготипом.ВВыводимуюОбласть()
.УстановитьПараметры(Параметры)
.УстановитьДанныеРисунков([ДанныеВыводаЛоготипа])
Писатель.ВывестиВертикально(ВыводимаяОбласть)
;
ВывестиВертикальныйРазделительСтраниц
ВывестиВертикальныйРазделительСтраниц()
Доступность: Сервер |
Выводит в результирующую таблицу вертикальный разделитель страниц.
ВывестиГоризонтально
ВывестиГоризонтально(Область: ТабличныйДокумент|ОбластьТабличногоДокумента|ВыводимаяОбластьТабличногоДокумента): ОбластьТабличногоДокумента
Доступность: Сервер |
Выводит область горизонтально (то есть вправо), помещая её в следующей колонке правее самой правой выведенной колонки, начиная со строки, с которой выводился предыдущая область или табличный документ.
Исключения
ИсключениеНедопустимыйАргумент
- при попытке вывода табличного документа в самого себя.
Примеры
метод ВывестиШапкуДокумента(ТабличныйДокумент: ТабличныйДокумент, Колонки: ЧитаемыйМассив<Строка>)
знч КрасныйЦвет = новый АбсолютныйЦвет(255, 0, 0)
знч Макет = новый ТабличныйДокумент()
знч Область = Макет.ПолучитьЯчейку(1, 1)
Область.УстановитьЦветТекста(КрасныйЦвет)
для Колонка из Колонки
пер ВыводимаяОбласть = Область.ВВыводимуюОбласть()
ВыводимаяОбласть.УстановитьТекст(Колонка)
ТабличныйДокумент.ВывестиГоризонтально(ВыводимаяОбласть)
;
;
ВывестиГоризонтальныйРазделительСтраниц
ВывестиГоризонтальныйРазделительСтраниц()
Доступность: Сервер |
Выводит в результирующую таблицу горизонтальный разделитель страниц.
ПроверитьВместимостьПоВертикали
ПроверитьВместимостьПоВертикали(Содержимое: ЧитаемыйМассив<ТабличныйДокумент|ОбластьТабличногоДокумента>): Булево
Доступность: Сервер |
Проверяет, поместится ли список областей на текущую страницу, если их выводить вертикально (то есть вниз).
Исключения
ИсключениеНедопустимыйАргумент
- при попытке проверки вывода табличного документа в самого себя.
Примеры
пер ТабличныйДокумент = новый ТабличныйДокумент()
пер Запись = ТабличныйДокумент.Запись
// ... получение из макета ОбластьШапкаТаблицы, ОбластьСтрокаТаблицы и ОбластьПодвалТаблицы
пер ПоследниеСтроки = новый Массив<ОбластьТабличногоДокумента>
ПоследниеСтроки.Добавить(ОбластьСтрокаТаблицы)
ПоследниеСтроки.Добавить(ОбластьПодвалТаблицы)
для Индекс = 1 по КоличествоСтрок
если не Запись.ПроверитьВместимостьПоВертикали(ПоследниеСтроки)
пер ПараметрыПодвала = [КоличествоСтрокСтраницы]
пер ВыводимаяОбласть = ОбластьПодвалТаблицы.ВВыводимуюОбласть()
.УстановитьПараметры(ПараметрыПодвала)
Запись.ВывестиВертикально(ВыводимаяОбласть)
Запись.ВывестиГоризонтальныйРазделительСтраниц()
Запись.ВывестиВертикально(ОбластьШапкаТаблицы)
КоличествоСтрокСтраницы = 0
;
пер ВыводимаяОбласть = ОбластьСтрокаТаблицы.ВВыводимуюОбласть()
.УстановитьПараметры(Параметры)
ТабличныйДокумент.ВывестиВертикально(ВыводимаяОбласть)
КоличествоСтрокСтраницы += 1
;
ПроверитьВместимостьПоГоризонтали
ПроверитьВместимостьПоГоризонтали(Содержимое: ЧитаемыйМассив<ТабличныйДокумент|ОбластьТабличногоДокумента>): Булево
Доступность: Сервер |
Проверяет, поместится ли список областей на текущую страницу, если их выводить горизонтально (то есть вправо).
Исключения
ИсключениеНедопустимыйАргумент
- при попытке проверки вывода табличного документа в самого себя.