1CLenta.ru  

Область печати и повторяющаяся область табличного документа

Программирование системы     16.04.2018 07:47     23681

В 1С Предприятии для представления табличной информации существует специальный вид файлов "Табличный документ". Файлы могут быть созданы в 1С Конфигураторе или в 1С Предприятии. Для создания новых файлов необходимо перейти в главном меню Файл->Новый... В языке программирования 1С существует одноименный объект ТабличныйДокумент, который позволяет программно создавать, сохранять и выводить табличные документы.

Область печати


В табличном документе может быть определена область печати. В этом свойстве можно указать ту область, которая будет напечатана на принтере. Такое может потребоваться если нужно распечатать часть документа. Это можно сделать двумя способами. Задать можно только одну область.

1. Через пользовательские настройки

Область печати может быть задана непосредственно через главное меню Таблица->Настройка печати->Задать область печати. Так же через главное меню можно удалить область печати Таблица->Настройка печати->Удалить область печати. Добавляемая и удаляемая области должны быть выделены.

На печать будет выведена 3 строка с 1 по 7 колонку. Остальные области будут проигнорированы.

Область печати табличного документа

2. Средствами встроенного языка

Другой вариант определить область печати - программный. Используя объект встроенного языка ТабличныйДокумент, можно задать какую область печатать. Для этого есть специальное свойство ОбластьПечати. В этом свойстве определяется ОбластьЯчеекТабличногоДокумента, которая будет печататься.

Следует учесть, что при программном выводе одного табличного документа в другой свойство ОбластьПечати затирается. Так же происходит при определении области печати в макете и последующем выводе макета в табличный документ. Поэтому область печати нужно задавать в результирующем табличном документе.

ТабДокРезультат = Новый ТабличныйДокумент;
//...
//Заполнение табличного документа
//...
ТабДокРезультат.ОбластьПечати = ТабДокРезультат.Область("R3C1:R3C7");

//При выводе именованной области макета в результирующий табличный документ,
//ее имя сохраняется и можно получить эту область по имени
ТабДокРезультат.ОбластьПечати = ТабДокРезультат.Область("ИмяОбласти");

ТабДокРезультат.Показать();


Повторяющаяся область печати


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

1. Через пользовательские настройки

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

На всех последующих страницах, вверху, будет повторяться вывод 3 строки. Остальные области будут выводиться как обычно.

Повторяющаяся область печати табличного документа

2. Средствами встроенного языка

Для решения задачи вывода повторяющейся области, в объекте ТабличныйДокумент есть специальные свойства: ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки. Как видно из названия, в первом свойстве ПовторятьПриПечатиСтроки определяется область строк (тип: ОбластьЯчеекТабличногоДокумента, задается только номерами строк), а во втором ПовторятьПриПечатиКолонки задается область колонок (тип: ОбластьЯчеекТабличногоДокумента, задается только номерами колонок).

Следует учесть, что при программном выводе одного табличного документа в другой, свойства ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки затираются. Так же происходит при определении повторяющихся областей печати в макете и последующем выводе макета в табличный документ. Поэтому эти свойства нужно задавать в результирующем табличном документе.

ТабДокРезультат = Новый ТабличныйДокумент;
//...
//Заполнение табличного документа
//...
ТабДокРезультат.ПовторятьПриПечатиСтроки = ТабДокРезультат.Область("R3");

//При выводе именованной области макета в результирующий табличный документ,
//ее имя сохраняется и можно получить эту область по имени
ТабДокРезультат.ПовторятьПриПечатиСтроки = ТабДокРезультат.Область("ШапкаТаблицы");

ТабДокРезультат.Показать();

Комментарии (1)

1. Evgenii  16.04.2018 10:31  
У этого метода, вывода повторяющихся областей, очень узкое применение. Например, когда на последней странице не нужно выводить шапку таблицы. Поэтому сам данным методом не пользуюсь. Шапку таблицы вывожу в цикле, для деления на страницы использую ПроверитьВывод().

Платформа 8.3.10.2466
ПовторятьПриПечатиКолонки - не работает, возможно ошибка в платформе.