584 документа
← К списку

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

страница

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

В 1C:EDT

Прежде всего добавьте итоговую сумму в печатную форму документа ОказаниеУслуги.

Откройте редактор макета Печать на закладке Макет.

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

Те именованные области, которые вы видите слева («Заголовок», «Шапка» и др.), были созданы с помощью конструктора. Но вы можете самостоятельно создавать или удалять области, переименовывать их и т. п.

Добавьте новую область для вывода итоговой суммы документа. Для этого выделите мышью две пустые строки под табличной частью документа и нажмите Таблица > Имена > Назначить имя… в главном меню 1С:EDT (рис. 8.20).

Рис. 8.20. Создание области ячеек для вывода итоговой строки

Назовите область Всего и нажмите ОК.

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

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

Платформа предложит создать новый формат для выделенных строк. Согласитесь. Аналогичные действия выполните и для колонок 3, 4, 5 и 6.

В созданной области в колонке Цена напишите ВСЕГО, а в колонке Сумма напишите ВсегоПоДокументу (рис. 8.21).

Рис. 8.21. Создание ячеек для вывода итога

В свойстве Заполнениеячейки ВсегоПоДокументу укажите, что в этой ячейке будет находиться не текст, а параметр (рис. 8.22).

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

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

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

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

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

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

Откройте модуль менеджера документа ОказаниеУслуги.

Найдите в нем процедуру Печать() (созданную конструктором) и отредактируйте ее следующим образом (новые строки выделены жирным шрифтом) – листинг 8.8.

**Листинг 8.**8. Печать формы документа (фрагмент)

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

Шапка = Макет.ПолучитьОбласть("Шапка");

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

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

ОбластьИтог = Макет.ПолучитьОбласть("Всего");

 

ТабДок.Очистить();

 

ВставлятьРазделительСтраниц = Ложь;

Пока Выборка.Следующий() Цикл

Если ВставлятьРазделительСтраниц Тогда

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли;

 

ТабДок.Вывести(ОбластьЗаголовок);

 

Шапка.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Шапка, Выборка.Уровень());

 

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

ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();

СуммаИтог = 0;

Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл

ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);

ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());

СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма;

КонецЦикла;

 

ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;

ТабДок.Вывести(ОбластьИтог);

 

ВставлятьРазделительСтраниц = Истина;

КонецЦикла;

…

Смысл добавленного фрагмента прост. Вы обращаетесь к макету документа ОказаниеУслуги по его имени – Макет.

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

В цикле обхода строк табличной части документа, полученных в результате выполнения запроса, вы накапливаете в переменной СуммаИтог значение суммы табличной части документа по колонке Сумма.

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

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

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