Для тех, кто работал с версией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
Быстрая разработка прикладных решений
Что нового мы узнали
- как изменить табличный документ
- какая разница в заполнении ячейки табличного документа
текстом, параметром и шаблоном - как с помощью встроенного языка вывести в табличный
документ новую область - как изменить внешний вид и поведение элемента
управления, расположенного в форме - как отобразить сумму по колонке табличного поля