Для тех, кто работал с версией7.7

Отчеты могут иметь теперь несколько реквизитов, табличных частей, форм и несколько макетов (печатных форм). Теперь доступен программный объект «Построитель отчета», позволяющий формировать отчеты автоматически. Таблица отчета может иметь вертикальные и горизонтальные группировки.


Быстрая разработка прикладных решений


Отчет


 


Создание отчета Материалы

Т

еперь у нас все готово для того, чтобы можно было получать выходные данные. Поэтому приступим к созданию отчета, который будет показывать нам приход, расход и остатки материалов. Данная глава преследует цель лишь проиллюстрировать механизм создания отчетов. Более глубоко работа с конструктором выходной формы будет рассмотрена в главе «Создание отчетов» на странице 162.

Создадим новый объект конфигурации Отчет и назовем его «Материалы». Перейдем на закладку «Макеты» и воспользуемся конструктором выходной формы для того, чтобы полностью создать наш отчет.


таблицы регистра «ОстаткиМатериалов» в этой ветке присутствуют еще несколько виртуальных таблиц, которые формирует система.

Кроме таблицы регистра ОстаткиМатериалов

присутствуют еще несколько виртуальных

таблиц...


 


Воспользуемся конструктором выходной формы...

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

В списке «База данных» представлен состав объектов базы данных; на основе их данных мы имеем возможность построить отчет. Если раскрыть ветку «РегистрыНакопления» то мы увидим, что кроме


Поскольку мы хотим видеть как остатки материалов, так и
информацию об их поступлении и расходовании, нас будет
интересовать виртуальная таблица

«ОстаткиМатериалов.ОстаткиИОбороты». Раскроем ее.

Как вы видите, эта таблица содержит материал, склад и кроме этого начальные и конечные остатки, а также значения прихода, расхода и оборотов для всех ресурсов регистра «ОстаткиМатериалов».


98


Быстрая разработка прикладных решений


Отчет


 


Начнем выбирать поля таблицы в нужном нам порядке двойным щелчком мыши. Сначала выберем «Склад» и «Материал». Затем выберем «КоличествоНачальныйОстаток», «КоличествоПриход», «КоличествоРасход» и в заключение «КоличествоКонечныйОстаток».

В результате окно «Поля» должно быть заполнено следующим образом:

После этого на закладке «Итоги» укажем группировочное поле «Склад»:


Как видите, наш отчет вполне «презентабелен» и полностью отражает движение материалов, произошедшее в нашей организации:



Нажмем «ОК». Система автоматически сформирует формы и откроет их на экране.

Запустим 1С:Предприятие в режиме отладки и посмотрим, как работает отчет. Выполним Операции | Отчет... | Материалыи нажмем «Сформировать».


100



Быстрая разработка прикладных решений

Глава 6. Макет

В этой главе вы познакомитесь с очередным новым объектом конфигурации - Макет. Вы узнаете о его назначении и создадите макет документа, на основе которого будет формироваться печатная форма документа.

 


102



Быстрая разработка прикладных решений


Макет


 


           
   
     
 
 
 


о

Объект конфигурации Макет

О

бъект конфигурации Макет предназначен для хранения различных форм представления данных, которые могут 1 потребоваться каким либо объектам конфигурации или всему прикладномурешению в целом. Макет может содержать табличныйили текстовый документ, двоичные данные, HTML-документ или Active Document. Макеты могут существовать как сами по себе (общие макеты), так и быть подчинены какому либо объекту конфигурации.

Одно из предназначений макета, подчиненного объекту 1 конфигурации и содержащего табличный документ - создание печатной формы этого объекта.

Создание печатной формы заключается в конструировании ее составных частей - именованных областей, из которых затем «собирается» готовая печатная форма. Порядок заполнения областей данными и порядок вывода их в итоговую форму описывается при помощи встроенного языка.

Печатная форма может включать в себя различные графические объекты: картинки, OLE-объекты, диаграммы и т.д.

Помимо создания макета «вручную», конфигуратор предоставляет разработчику возможность воспользоваться специальным инструментом - конструктором печати, который берет на себя большинство рутинной работы по созданию макета.


Создание макета документа ОказаниеУслуги

ткроем в конфигураторе окно редактирования объекта конфигурации Документ «ОказаниеУслуги». Перейдем на закладку «Макеты» и запустим конструктор печати:

Запустим конструктор печати...


 



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

На втором шаге нажатием двойной стрелки определим, что все реквизиты нашего документа будут отображены в шапке печатной формы.

На третьем шаге точно также определим, что все реквизиты табличной части документа будут отображены в печатной форме.

На четвертом шаге конструктор предложит сформировать нам подвал (нижнюю часть) печатной формы. Мы не станем ничего


Быстрая разработка прикладных решений


Макет


 


указывать (подвал в данном случае использовать не будем), и перейдем к пятому шагу.

Здесь укажем, что конструктор должен вставить новую кнопку в форму документа для вызова процедуры формирования печатной формы, и нажмем «ОК».

В конфигураторе откроется форма документа и его макет:


Проверим макет в работе. Запустим 1С:Предприятие в режиме отладки и откроем документ ОказаниеУслуги №1. Обратите внимание, что в правом нижнем углу документа появилась новая кнопка «Печать».

Появилась новая кнопка «Печать»...



Эта та кнопка, которую добавил конструктор. Нажмем на нее и увидим печатную форму нашего документа.



 


Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме - это итоговой суммы документа.


106



Редактирование макетов и форм


Глава 7. Редактирование макетов и форм

Редактирование макета документа ОказаниеУслуги

О

ткроем конфигуратор, раскроем дерево документа «ОказаниеУслуги» и дважды щелкнем на макете «Печать». Как видите, макет документа состоит из именованных областей, которые в определенном порядке выводятся на печать.

Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки и выполним команду Таблица | Имена | Назначить имя...

Выделим мышью две строки и зададим имя области


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

Укажем, что в ячейке будет находиться не текст, а параметр...



Здесь следует сказать о том, что каждая ячейка редактируемого нами табличного документа может содержать либо текст, либо некоторый параметр, либо шаблон.

Текст, содержащийся в ячейке, будет показан на экране.

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

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

Поэтому, указав для ячейки в качестве заполнения «Параметр», мы определили параметр области с именем «ВсегоПоДокументу», которому присвоим нужное нам значение при формировании печатной формы.


Назовем область «Всего». В созданной области, в колонке «Цена», напишем «Всего», а в колонке «Сумма» напишем «ВсегоПоДокументу».


110



Быстрая разработка прикладных решений


Редактирование макетов и форм


 


Теперь откроем модуль формы документа «ОказаниеУслуги» -«ФормаДокумента». Найдем в нем процедуру «Печать» и после цикла добавим в нее следующие строки (новые строки выделены жирным шрифтом):

Процедура Печать(Элемент)

// {{_KOHCTPyKTOP_ПЕЧАТИ_ЭЛEMEHT(печать) // Данный фрагмент построен конструктором. // При повторном использовании конструктора, //внесенные вручную изменения будут утеряны!!! ТабДок = Новый ТабличныйДокумент;

Макет = Документы.ОказаниеУслуги.ПолучитьМакет("Печать"); // Заголовок

Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка

Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Номер = Номер; Область.Параметры.Дата = Дата; Область.Параметры.Клиент = Клиент; Область.Параметры.Мастер = Мастер; ТабДок.Вывести(Область); // тчНоменклатура

Область = Макет.ПолучитьОбласть("тчНоменклатураШапка"); ТабДок.Вывести(Область);

Для Каждого ТекСтрокатчНоменклатура Из тчНоменклатура Цикл Область = Макет.ПолучитьОбласть("тчНоменклатура");

Область.Параметры.УслугаМатериал = ТекСтрокатчНоменклатура.Номенклатура; Область.Параметры.Количество = ТекСтрокатчНоменклатура.Количество; Область.Параметры.Цена = ТекСтрокатчНоменклатура.Цена; Область.Параметры.Сумма = ТекСтрокатчНоменклатура.Сумма; ТабДок.Вывести(Область); КонецЦикла;

Область = Макет.ПолучитьОбласть("Всего");Область.Параметры.ВсегоПоДокументу = ПереченьНоменклатуры

.Итог("Сумма");ТабДок.Вывести(Область); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать();

//} }_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ КонецПроцедуры


параметру «ВсегоПоДокументу», находящемуся в этой области, мы присваиваем значение суммы табличной части документа по колонке «Сумма» (обращение к табличной части документа выполняется по имени - «ПереченьНоменклатуры»). В заключение мы выводим область в итоговый табличный документ, который будет показан на экране и распечатан пользователем.

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

А теперь, для того, чтобы наш документ «ОказаниеУслуги», выглядел вполне законченным, добавим итоговую сумму по документу и на экранную форму, чтобы пользователь мог видеть ее в процессе заполнения табличной части документа.


Смысл добавленного фрагмента прост: мы получаем новую область «Всего» (ту, которую мы только что добавили к макету). Затем


112



Быстрая разработка прикладных решений


Редактирование макетов и форм


 


Редактирование формы документа ОказаниеУслуги

О

ткроем в конфигураторе форму документа «ОказаниеУслуги» - «ФормаДокумента». Откроем палитру свойств для табличного поля, расположенного в форме, и установим свойство «Подвал», которое определяет наличие подвала у элемента управления табличное поле.

Добавим подвал к табличному полю...


После этого откроем свойства колонки «Сумма», установим горизонтальное положение в подвале - «Прижать вправо», установим флаг «Показывать итог в подвале» и в шрифте подвала тоже изменим начертание на «Жирный».

Запустим 1С:Предприятие в режиме отладки и посмотрим, как теперь выглядит форма документа Оказание услуги № 1:

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


Затем откроем свойства колонки «Цена» и установим текст подвала - «Всего:», горизонтальное положение в подвале - «Прижать вправо» и в шрифте подвала изменим начертание на «Жирный».


114



Быстрая разработка прикладных решений


Что нового мы узнали

- как изменить табличный документ

- какая разница в заполнении ячейки табличного документа

текстом, параметром и шаблоном - как с помощью встроенного языка вывести в табличный

документ новую область - как изменить внешний вид и поведение элемента

управления, расположенного в форме - как отобразить сумму по колонке табличного поля