Лабораторная работа №4
Тема: Макеты (сб). Периодические регистры сведений.
Цель: формирование умений создания и редактирования отчетов
Время выполнения: 8 часов
Теоретический материал
В этой практической работе Вы познакомитесь с новым объектом - Макет. Узнаете о его назначении и создадите макет документа, на основе которого будет создаваться печатная форма документа.
Макет предназначен для хранения различных форм представления данных, различных данных. Может содержать табличный или текстовый документ, двоичные данные, НТМ 1-документ, графическую или географическую схему, схему компоновки данных или макет оформления этой схемы.
Задания:
1 Создание макета
Создадим печатную форму документа ОказаниеУслуги. Откройте в конфигураторе окно редактирования объекта Документ ОказаниеУслуги. Перейдите на вкладку Макеты и запустите конструктор печати.
На первом шаге ничего менять не будем, нажмите Далее. На втором шаге перенесите все реквизиты документа из левой части в правую - они будут отображены в шапке печатной формы. Нажмите Далее. Также перенесите все реквизиты в табличную часть. На четвертом шаге ничего не переносите - подвал (нижняя часть формы) использовать не будем, нажмите Далее. Нажмите ОК.
Откроется модуль команды Печать, модуль менеджера документа ОказаниеУслуги и макет этого документа (см. рисунок 36).
Рисунок 36 - Окно создания и редактирования макета
Таким образом, конструктор создал:
- Макет печатной формы документа ОказаниеУслуги с именем Печать
- Команду документа ОказаниеУслуги с именем Печать. В модуль этой команды помещен обработчик, вызывающий процедуру печати документа, выполняющуюся на сервере. Сама процедура печати помещена в модуль менеджера документа.
- В командную панель формы документа ОказаниеУслуги помещена команда Печать для формирования печатной формы документа. При этом команда Печать принадлежит всему документу, а не одной его форме, поэтому может использоваться в любой его форме.
Запустите 1С: Предприятие в режиме отладки и откройте документ Оказание услуги №1. Нажмите на появившуюся кнопку Печать (см. рисунок 37).
Откроется печатная форма документа. Единственное, чего в ней не хватает - итоговой суммы документа (см. рисунок 38).
Рисунок 37 - Документ в режиме отладки с кнопкой печати
Рисунок 38 - Вид печатной формы документа
2 Редактирование макета
Вернитесь в конфигуратор. Добавим итоговую сумму в печатную форму.
Раскройте дерево документа ОказаниеУслуги и дважды щелкните на макете Печать (Если закрыли перед этим).
Макет документа состоит из именованных областей, которые в определенном порядке выводятся на печать. Именованные области слева созданы конструктором, но Вы можете сами создавать или удалять области, переименовывать их и т.д.
Добавим новую область для вывода итоговой суммы документа. Выделите мышью две пустые строки под табличной частью документа и выполните Таблица - Имена - Назначить имя. Назовите область Всего и нажмите ОК (см. рисунок 39).
Рисунок 39 – Процесс создания новой области в макете
Слева появилась новая область Всего. Но ширина области Всего не совпадает с остальными, изменим её. Выделите две строчки созданной области Всего, потяните мышью в заголовке таблицы за правую границу колонки 2 так, чтобы её ширина совпала с шириной колонки № в шапке документа. Согласитесь, когда платформа предложит создать новый формат строк. Теперь сделайте такое же изменение ширины для колонок 3,4, 5, 6, чтобы они соответствовали колонкам в шапке.
В созданной области во второй строчке колонки Цена напишите ВСЕГО:, а в колонке Сумма напишите ВсегоПоДокументу (см. рисунок 40).
Рисунок 40 - Окно редактора макета с новой областью
Проконтролировать вид печатной Формы можно с помощью кнопки предварительного просмотра (см. рисунок 41).
Выделите ячейку, где Вы записали ВсегоПоДокументу, вызовите контекстное меню - Свойства. В свойстве Заполнение укажите, что в этой ячейке будет находиться не текст, а параметр. Подробнее об этом выборе.
Текст, содержащийся в
ячейке, будет показан на экране.
Параметр будет заменен некоторым значение, которое может быть присвоено ему средствами встроенного языка. Текст, содержащийся в ячейке, является именем этого параметра.
Шаблон - текстовая строка, в определенные места которой будут вставлены значения параметров.
Откройте модуль менеджера документа ОказаниеУслуги.
Для этого перейдите на закладку Прочее окна редактирования объекта ОказаниеУслуги и нажмите кнопку Модуль менеджера (или закройте макет, менеджер должен быть открыт под ним).
Перед Вами часть процедуры печати, выделенные жирным строчки - новые.
ОбластьЗаголовок = Макет.ПолучитьОбласть |("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьПереченьНоменклатурыШапка=Макет.Получить |Область("ПереченьНоменклатурыШапка");
ОбластьПереченьНоменклатуры=Макет.ПолучитьОбласть |("ПереченьНоменклатуры");
ОбластьИтог = Макет.ПолучитьОбласть("Всего");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделитель |Страниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьПереченьНоменклатуры Шапка);
Выборка ПереченьНоменклатуры = |Выборка.ПереченьНоменклатуры.Выбрать();
Сумма Итог = 0;
Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
ОбластьПереченьНоменклатуры.Параметры.Заполнить |(Выборка ПереченьНоменклатуры);
ТабДок.Вывести(ОбластьПереченьНоменклатуры, |Выборка Перечень Номенклатуры.Уровень());
СуммаИтог= СуммаИтог + ВыборкаПеречень |Номенклатуры.Сумма;
КонецЦикла;
ОбластьИтог.Параметры.ВсегоПоДокументу = |СуммаИтог;
ТабДок.Вывести(ОбластьИтог);
ВставлятьРазделительСтраниц = Истина;
КонецЦикла
Запустите 1С: Предприятие и посмотрите форму печати документа Оказание услуги №1 (см. рисунок 42).
Рисунок 42 - Форма печати документа
А теперь, чтобы документ ОказаниеУслуги выглядел законченным, добавим итоговую сумму по документу и на экранную форму, чтобы пользователь мог видеть её в процессе заполнения табличной части документа.
Редактирование формы
Вернитесь в конфигуратор. Удобно, если в процессе создания документа можно было оперативно, не печатая его, знать итоговую сумму по документу (как в Ехсе1). Для этого внесем небольшие изменения в форму документа ОказаниеУслуги.
Откройте в дереве объектов форму документа ОказаниеУслуги, дважды щелкнув по ней. В левом верхнем окне вызовите свойства пункта ПереченьНоменклатуры. Установите свойство Подвал, которое определяет наличие подвала (нижней части) у таблицы формы (см. рисунок 43).
Рисунок 43 - Создание подвала документа
Затем откройте свойства элемента формы ПереченьНоменклатурыЦена и установите (см. рисунок 44):
- Текст подвала - Всего:
- Горизонтальное положение - Право,
- Шрифт подвала - Жирный.
Рисунок 44 - Настройка подвала документа
Рисунок 45 - Свойства подвала
После этого откройте свойства элемента ПереченьНоменклатурыСумма, установите: Горизонтальное положение - Право, Шрифт – жирный (см. рисунок 45).
Для того, чтобы в подвале колонки Сумма отображался итог по ней, нажмите кнопку выбора свойств в поле ПутьКДаннымПодвала. Раскройте дерево реквизитов объекта и выберите элемент ИтогСумма (см. рисунок 46).
Нажмите ОК и запустите 1С:Предприятие в режиме отладки. Откройте документ Оказание услуги №1. Вы увидите, что по колонке Сумма в табличной части документа подсчитывается общий итог документа (см. рисунок 47).
Рисунок 46 - Окно выбора реквизита
Рисунок 47 - Окно документа с подвалом
Контрольные вопросы
1. Для чего предназначен объект Макет?
2. Что такое конструктор печати?
3. Как создать макет с помощью конструктора печати?
4. Как изменить макет документа?
5. Какая разница в заполнении ячейки табличного документа между текстом, параметром и шаблоном?
6. Как изменить внешний вид и поведение элемента формы? Как отобразить сумму по колонке таблицы?
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.