Лабораторная работа № 8

Ориентировочная продолжительность занятия - 2 час 10 минут.

 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Что такое макет

Объект конфигурации Макет предназначен для хранения различных форм представления данных, различных данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом.
Макет может содержать табличный или текстовый документ, двоичные данные, HTML-документ или Active Document, графи­ческую или географическую схему, схему компоновки данных или макет оформления схемы компоновки данных.
Макеты могут существовать как сами по себе, так и быть подчинены какому-либо объекту конфигурации.
Одно из предназначений макета, подчиненного объекту конфигу­рации и содержащего табличный документ, - создание печатной формы этого объекта. Создание печатной формы заключается в конструировании ее составных частей - именованных областей, из которых затем «собирается» готовая печатная форма.
Порядок заполнения областей данными и вывода их в итоговую форму описывается при помощи встроенного языка. Печатная форма может включать в себя различные графические объекты: картинки, OLE-объекты, диаграммы и т. д.
Помимо создания макета «вручную» конфигуратор предоставляет разработчику возможность воспользоваться специальным инстру­ментом - конструктором печати, который берет на себя боль­шинство рутинной работы по созданию макета.

Макет печатной формы

Откроем в конфигураторе окно редактирования объекта конфигу­рации Документ ОказаниеУслуги.
 - На закладке Макеты: запустим конструктор печати.
 -  В окне конструктора печати документа на первом шаге укажем: «Создать новую команду», имя команды: «Печать».
-Нажмем «Далее»-
 -  На втором шаге нажатием кнопки >> определим, что все реквизиты нашего документа будут отображены в шапке печатной формы:

Рис. 8.1. Конструктор печати. Шаг 2

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

Рис. 8.2. Конструктор печати. Шаг 3

-Нажмем «Далее»-
 - Ha четвертом шаге и пятом шагах указывать ничего не будем. Тем самым согласимся с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел Важное.
-Нажмем «ОК»-
В конфигураторе откроется модуль команды Печать, модуль менед­жера документа ОказаниеУслуги и макет этого документа:


Рис. 8.3. Макет документа "Оказание услуги"

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


Запустим 1С: Предприятие в режиме отладки и откроем документ Оказание услуги № 1.
Обратите внимание, что в командной панели документа появилась новая кнопка Печать. Нажмем на нее и увидим печатную форму нашего документа
Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме, - это итоговой суммы документа.
В следующем разделе, на примере добавления итоговой суммы документа, мы познакомимся с тем, как можно редактировать макеты и формы объектов конфигурации.

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

 - Добавим итоговую сумму в печатную форму документа ОказаниеУслуги:
1) Откроем конфигуратор, раскроем дерево документа ОказаниеУслуги и дважды щелкнем на макете Печать.
2) Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним Таблица > Имена > Назначить имя...
3) Назовем область «Всего», нажмем «ОК».
Чтобы формат добавленных нами строк совпадал с имеющимся форматом заголовка и табличной части документа, изменим ширину колонок.
4) Аналогичные действия выполним и для колонок 3,4, 5 и 6.
5) В созданной области, в колонке Цена, напишем ВСЕГО:, а в колонке Сумма напишем ВсегоПоДокументу.
6) Вызвав палитру свойств для последней заполненной нами ячейки (контекстное меню - Свойства), в свойстве Заполнение укажем, что в этой ячейке будет нахо­диться не текст, а параметр.


Рис. 8.4. Свойства ячейки "ВсегоПоДокументу"


 Каждая ячейка редактируемого нами табличного документа может содержать либо текст, либо некоторый параметр, либо шаблон.
Текст, содержащийся в ячейке, будет показан на экране.
Параметр будет заменен некоторым значением, которое может быть присвоено ему средствами встроенного языка. Текст, содержащийся в ячейке, является именем этого параметра.
Шаблон представляет собой текстовую строку, в определенные места которой будут вставлены значения параметров.
Поэтому, указав для ячейки в качестве заполнения Параметр, мы определили параметр области с именем ВсегоПоДокументу, которому присвоим нужное нам значение при формировании печатной формы.
 - Откроем модуль менеджера документа ОказаниеУслуги:
1) Для этого перейдем на закладку Прочее окна редактирования объекта конфигурации Документ ОказаниеУслуги и нажмем кнопку Модуль менеджера

Рис.8.5. Документ ОказаниеУслуги

Найдем в нем процедуру Печать и отредактируем ее:


Листинг 8.1. Редактируем процедуру Печать

Смысл добавленного фрагмента прост. Мы обращаемся к макету документа ОказаниеУслуги по его имени - Макет. Используя его метод ПолучитьОбласть(), получаем область Всего (ту, которую мы только что добавили к макету) и сохраняем её в переменной ОбластьИтог. В цикле обхода строк табличной части документа, полученных в результате выполнения запроса, мы накапливаем в переменной СуммаИтог значение суммы табличной части документа по колонке Сумма.

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

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

 

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

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

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

После того как мы вывели итоговую сумму по табличной части в печатную форму документа, возникло естественное желание видеть такую же итоговую сумму и в форме документа. Чтобы в процессе его создания можно было оперативно, не печатая документ, знать итоговую сумму по документу.
Для этого мы внесем небольшие изменения в форму документа ОказаниеУслуги.
Для редактирования формы документа откроем конфигуратор, раскроем дерево документа ОказаниеУслуги и дважды щелкнем на форме ФормаДокумента.
1) Дважды щелкнем на элементе ПереченьНоменклатуры и установим   свойство    Подвал,  которое определяет наличие подвала у таблицы формы.
2) Затем откроем свойства элемента формы ПереченьНоменклатурыЦена и установим:

3) Откроем свойства элемента ПереченьНоменклатурыСумма, установим:

Для того чтобы в подвале колонки Сумма отображался итог по ней, нажмем кнопку выбора в поле ПутьКДаннымПодвала.  Раскроем дерево реквизитов объекта и выберем элемент ИтогСумма:

Рис. 8.6. Свойства Поле

Рис. 8.7. Выбор объекта ИтогСумма

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

Контрольные вопросы

 

 

Начать Тест

- Перейти на страницу контрольного тестового задания