Вывод на печать. Работа с табличными документами.

Табличный документ – агрегатный объект. Таблица типа Excel, используется для вывода данных в качестве печатных форм, для ввода данных, могут быть и другие применения.

 

 

Рис.1.1. Табличный документ

 

В программных модулях табличный документ создаётся

С помощью универсального конструктора объектов Новый

 

ТабДок = Новый ТабличныйДокумент;

 

При создании печатных форм табличный документ используется в виде особого типа табличных документов – макета. Для того что бы табличный документ стал макетом в нём должно быть задано специальное свойство

 

 

Рис.1.2. Задание свойства «макет» для табличного документа.

 

Макет отличается тем что в нём могут быть заданы именованные области для вывода, к которым можно обращаться при формировании печатной формы и помещать их в формируемых документ как одно целое.

 

 

Рис.1.3. Макет с именованными областями.

 

Именованные области могут быть горизонтальными или вертикальными.

Создаются именованные области через команду основного меню режима конфигуратора "Таблица/Имена/НазначитьИмя". При этом строки или столбцы, включаемые в область, должны быть выделены (рис. )

 

 

Рис.1.4. Создание именованной области

 

 

Обращение к именованной области макета происходит методом ПолучитьОбласть("ИмяОбласти")

 

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

 

Особенностью макетов является то, что их ячейки могут включать различный тип заполнения данными. Тип заполнения задаётся свойством «Заполнение» из группы свойств ячейки - макет.

 

 

 

 

Рис.1.5. Возможные типы заполнений данными ячейки макета.

 

Возможны следующие типы заполнений

Текст

Параметр

Шаблон

 

Тип заполнения – Текст подразумевает, что данные как в ячейку вводятся так и отображаются.

Заполнение «Параметр» позволяет использовать в качестве значения ячейки – реквизиты или переменные контекста, то есть объекта в для которого создаётся макет. Например реквизиты справочника.

Заполнение «Шаблон» указывает, что в качестве значения используется шаблон, созданный на основе специального языка формул табличных документов 1с. В данном практикуме язык формул таблиц не будет рассматривать рассматриваться.

Создание печатного документа должно включать следующие действия

1. Создание печатного документа (на клиенте)

ТабДок = Новый ТабличныйДокумент;

2. Вызов макета (в приведённом ниже примере вызывается макет из обработки с именем "ОбработкаПечать" (на сервере)

Макет= = Обработки.ОбработкаПечать.ПолучитьМакет("Макет1");

3. Подготовка данных выводимых на печать,

В данной работе подготовка данных будет производится на основе запроса.

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Номенклатура.Наименование,

| Номенклатура.Код,

| Номенклатура.ЦенаПродажи,

| Номенклатура.ВидНоменклатуры

|ИЗ

| Справочник.Номенклатура КАК Номенклатура

|

|СГРУППИРОВАТЬ ПО

| Номенклатура.ВидНоменклатуры,

| Номенклатура.Наименование,

| Номенклатура.Код,

| Номенклатура.ЦенаПродажи";

 

Результат = Запрос.Выполнить();

 

4. Заполнение формирование документа. Заполнение включает получение необходимой области в макете операцией макета ПолучитьОбласть() с последующим выводом данной области в документ методом документа Вывести() При получении области происходит автоматическая подстановка значений параметров в документ и вычисление шаблонов. Пример кода заполнение документа приведён ниже.

 

ТабДок.Очистить();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ТабДок.Вывести(ОбластьЗаголовок);

СтрокаТабл = Макет.ПолучитьОбласть("Детали");

ВыборкаСрокиР = Результат.Выбрать();

Пока ВыборкаСтрокаР.Следующий() Цикл

СтрокаТабл.Параметры.Заполнить(ВыборкаСтрокаР);

ТабДок.Вывести(СтрокаТабл, ВыборкаСрокиР.Уровень());

КонецЦикла;

Непосредственно вставку в макет можно выполнять командой

ОбластьШапка.Параметры.НомерДокумента=Док.Номер;

Вывод документ заполненных именованных областей макета.

ТабДок.Вывести( ОбластьШапка);

 

5. Отображение документа. Выполняется операцией документа Показать( ).

 

Необходимо помнить, что получение данных из информационной базы (обычно требуемая при заполнении документа) можно делать в программных модулях, выполняемых на сервере. Тогда как отображение документа, конечно же, возможно только на клиенте. Поэтому обычно формирование печатного происходит в двух процедурах. В процедуре, с директивой &наКлиенте – в данной процедуре происходит создание и отображение документа, и процедуре с директивой &НаСервере или &НаСервереБезКонтекста происходит заполнение документа.

 

&НаКлиенте

Процедура ПечатьСпр(Команда)

ТабДок = Новый ТабличныйДокумент;

ЗапонениеДок (ТабДок);

ТабДок.Показать( );

КонецПроцедуры

 

&НаСервере

Процедура ЗапонениеДок (ТабДок);

//Действия по заполнению документа (действия 2,3,4,5)

КонецПроцедуры

 

Формирование документа для печати может быть упрощено за счёт использования конструктора вызываемого в из программного модуля через контекстное меню. Конструктор, целесообразно вызывать для процедуры, выполняемой на сервере, то есть для создание действий по заполнению документа.

 

 

 

Рис.1.6. Вызов конструктора запросов с обработкой результатов.

При вызове конструктора необходимо задать режим вывода результата в табличный документ (закладка Тип обработки)

 

 

Рис.1.7. Конструктор запросов с обработкой результатов.

 








Дата добавления: 2017-08-01; просмотров: 256;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.016 сек.