Лабораторная работа № 8
Ориентировочная продолжительность занятия - 2 час 10 минут.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Что такое макет
Объект конфигурации Макет предназначен для хранения различных форм представления данных, различных данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом.
Макет может содержать табличный или текстовый документ, двоичные данные, HTML-документ или ActiveDocument, графическую или географическую схему, схему компоновки данных или макет оформления схемы компоновки данных.
Макеты могут существовать как сами по себе, так и быть подчинены какому-либо объекту конфигурации.
Одно из предназначений макета, подчиненного объекту конфигурации и содержащего табличный документ, - создание печатной формы этого объекта. Создание печатной формы заключается в конструировании ее составных частей - именованных областей, из которых затем «собирается» готовая печатная форма.
Порядок заполнения областей данными и вывода их в итоговую форму описывается при помощи встроенного языка. Печатная форма может включать в себя различные графические объекты: картинки, OLE-объекты, диаграммы и т. д.
Помимо создания макета «вручную» конфигуратор предоставляет разработчику возможность воспользоваться специальным инструментом - конструктором печати, который берет на себя большинство рутинной работы по созданию макета.
|
|
Макет печатной формы
- В режиме Конфигуратор
Откроем в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги.
- На закладке Макеты: запустим конструктор печати.
- В окне конструктора печати документа на первом шаге укажем: «Создать новую команду», имя команды: «Печать».
-Нажмем «Далее» -
- На втором шаге нажатием кнопки >> определим, что все реквизиты нашего документа будут отображены в шапке печатной формы:
Рис. 8.1. Конструктор печати. Шаг 2
-Нажмем «Далее» -
- На третьем шаге точно так же определим, что все реквизиты табличной части документа будут отображены в печатной форме:
<="" p="">
Рис. 8.2. Конструктор печати. Шаг 3
-Нажмем «Далее» -
- Ha четвертом шаге и пятом шагах указывать ничего не будем. Тем самым согласимся с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел Важное.
-Нажмем «ОК»-
В конфигураторе откроется модуль команды Печать, модуль менеджера документа ОказаниеУслуги и макет этого документа:
Рис. 8.3. Макет документа "Оказание услуги"
Заметим, что разработчик может создать макет печатной формы с нуля и для ее вывода создать соответствующую команду и кнопку в форме документа, но в данном случае всю работу сделал за нас конструктор печати.
|
|
- В режиме 1с: Предприятие
Запустим 1С: Предприятие в режиме отладки и откроем документ Оказание услуги № 1.
Обратите внимание, что в командной панели документа появилась новая кнопка Печать. Нажмем на нее и увидим печатную форму нашего документа
Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме, - это итоговой суммы документа.
В следующем разделе, на примере добавления итоговой суммы документа, мы познакомимся с тем, как можно редактировать макеты и формы объектов конфигурации.
Редактирование макета
- В режиме Конфигуратор
- Добавим итоговую сумму в печатную форму документа ОказаниеУслуги:
1) Откроем конфигуратор, раскроем дерево документа ОказаниеУслуги и дважды щелкнем на макете Печать.
2) Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним Таблица > Имена> Назначить имя...
3) Назовем область «Всего», нажмем «ОК».
Чтобы формат добавленных нами строк совпадал с имеющимся форматом заголовка и табличной части документа, изменим ширину колонок.
4) Аналогичные действия выполним и для колонок 3,4, 5 и 6.
5) В созданной области, в колонке Цена, напишем ВСЕГО:, а в колонке Сумма напишем ВсегоПоДокументу.
6) Вызвав палитру свойств для последней заполненной нами ячейки (контекстное меню - Свойства), в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр.
Рис. 8.4. Свойства ячейки "ВсегоПоДокументу"
Каждая ячейка редактируемого нами табличного документа может содержать либо текст, либо некоторый параметр, либо шаблон.
Текст, содержащийся в ячейке, будет показан на экране.
Параметр будет заменен некоторым значением, которое может быть присвоено ему средствами встроенного языка. Текст, содержащийся в ячейке, является именем этого параметра.
Шаблон представляет собой текстовую строку, в определенные места которой будут вставлены значения параметров.
Поэтому, указав для ячейки в качестве заполнения Параметр, мы определили параметр области с именем ВсегоПоДокументу, которому присвоим нужное нам значение при формировании печатной формы.
- Откроем модуль менеджера документа ОказаниеУслуги:
1) Для этого перейдем на закладку Прочее окна редактирования объекта конфигурации Документ ОказаниеУслуги и нажмем кнопку Модуль менеджера
Рис.8.5. Документ ОказаниеУслуги
Найдем в нем процедуру Печать и отредактируем ее:
Листинг 8.1. Редактируем процедуру Печать
Смысл добавленного фрагмента прост. Мы обращаемся к макету документа ОказаниеУслуги по его имени - Макет. Используя его метод ПолучитьОбласть(), получаем область Всего (ту, которую мы только что добавили к макету) и сохраняем её в переменной ОбластьИтог. В цикле обхода строк табличной части документа, полученных в результате выполнения запроса, мы накапливаем в переменной СуммаИтог значение суммы табличной части документа по колонке Сумма.
Затем мы обращаемся к параметру ВсегоПоДокументу (ОбластьИтог.Параметры.ВсегоПоДокументу), находящемуся в области Всего, и присваиваем ему значение переменной СуммаИтог. В заключение мы выводим итоговую область в табличный документ, который будет показан на экране и распечатан пользователем - ТабДок.Вывести(ОбластьИтог).
Отображение табличного документа на экране выполняется в обработчике команды Печать, в модуле этой команды на клиенте, в то время как сама процедура печати, описанная в модуле менеджера документа, выполняется на сервере.
- В режиме 1С:Предприятие
|
|
Запустим 1С:Предприятие в режиме отладки и проверим результат наших изменений.
Подобным образом, создавая именованные области и ячейки макета, используя их свойства и управляя порядком их вывода с помощью встроенного языка, разработчик имеет возможность создать печатную форму любого дизайна.
А теперь, для того чтобы наш документ ОказаниеУслуги, выглядел вполне законченным, добавим итоговую сумму по документу и на экранную форму, чтобы пользователь мог видеть ее в процессе заполнения табличной части документа.
Редактирование формы
- В режиме Конфигуратор
После того как мы вывели итоговую сумму по табличной части в печатную форму документа, возникло естественное желание видеть такую же итоговую сумму и в форме документа. Чтобы в процессе его создания можно было оперативно, не печатая документ, знать итоговую сумму по документу.
Для этого мы внесем небольшие изменения в форму документа ОказаниеУслуги.
Для редактирования формы документа откроем конфигуратор, раскроем дерево документа ОказаниеУслуги и дважды щелкнем на форме ФормаДокумента.
1) Дважды щелкнем на элементе ПереченьНоменклатуры и установим свойство Подвал, которое определяет наличие подвала у таблицы формы.
2) Затем откроем свойства элемента формы ПереченьНоменклатурыЦена и установим:
- Текст подвала – Всего;
- Горизонтальное положение в подвале – Право;
- Свойство шрифт подвала изменим начертание на Жирный.
3) Откроем свойства элемента ПереченьНоменклатурыСумма, установим:
- Горизонтальное положение в подвале - Право.
- Свойство Шрифт подвала - Жирный.
Для того чтобы в подвале колонки Сумма отображался итог по ней, нажмем кнопку выбора в поле ПутьКДаннымПодвала. Раскроем дерево реквизитов объекта и выберем элемент ИтогСумма:
Рис. 8.6. Свойства Поле
Рис. 8.7. Выбор объекта ИтогСумма
- В режиме 1С:Предприятие
Запустим 1С:Предприятие в режиме отладки и посмотрим, как теперь выглядит форма документа Оказание услуги № 1.
Мы видим, что по колонке Сумма в табличной части документа, подсчитывается общий итог документа.
|
|
Контрольные вопросы
- Для чего предназначен объект конфигурации Макет.
- Что такое конструктор печати.
- Как создать макет с помощью конструктора печати.
- Как изменить табличный документ.
- Какая разница в заполнении ячейки табличного документа текстом, параметром и шаблоном.
- Как с помощью встроенного языка вывести в табличный документ новую область.
- Как изменить внешний вид и поведение элемента формы.
- Как отобразить сумму по колонке таблицы.