Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Меркулова_Пособие_РазработкаУправляемыхПриложен...doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
18 Мб
Скачать

Ведомость начислений материальной помощи, не облагаемой налогом, с начала года по___________

Название

месяца

Всего начислено

В том числе

Рабочие

Инженерно-технические работники

Административно-управленческий прсонал

Глава 15. Дополнительные возможности разработки отчетов с использованием системы компоновки данных

Понятие «Макеты» очень часто встречаются в системе куомпоновки данных.. В СКД можно использовать следующие макеты:

  • макет как элемент СКД,

  • предопределенные макеты,

  • макеты оформления,

  • внешние макеты.

По умолчанию .макет как элемент СКД формируется автоматически при разработки отчета с помощью СКД. «Внешне» отчет состоит из набора стандартных областей, которые система сама располагает, в зависимости от вида отчета. Но разработчик может задать собсьтвенное рамположение и оформление различных областей. Это и есть предопределенные макеты.

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

Наконец, если разработчику необходимо часть отчета формировать с использованием стандартного макета СКД, а часть, например, заголовок, подвал, нестандартными средствами, он может дополнительно создать внешний макет.

Рассмотрим разработку перечисленных макетов, используемых в СКД.

    1. Внешние макеты

Известно, что заголовок отчета, сделанного исключительно визуальными средствами СКД, содержит только текст. Например (Рис.15.1),

Рис. 15.1. Внеший вид отчета, использующий макет, как элемент СКД.

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

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

Для формирования новой шапки и подвала отчета сформируем традиционный макет (рис.15.2.).

Рис. 15.2. Внешний макет для вывода заголовка и подвала отчета

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

Следовательно, вызов такой процедуры должен осуществляться с помощью собственной кнопки. Назовем ее также «Сформировать». Кроме того, необходимо встроенную одноименную кнопку в форме отчета

скрыть. Для этого необходимо в свойствах формы отключить видимость свойства

ОсновнаяКоманднаяПанель (см. Рис.15.3.)

Рис.15.3. Отключение видимости свойства формы отчета

Затем необходимо сформировать собственную команду «Сформировать» и перенести ее на форму. Также сформируем новый реквизит «ВыбДата», тип Дата и также перенесем его на форму (см. Рис.15.4.).

Рис.15.4. Добавление новых компонент на форму отчета

Обработчик события нажатия на новую кнопку (Рис.15.5.)

Рис.15.5. Назначение обработчика события нажатия на новую кнопку

Модуль формы отчета:

&НаКлиенте

Процедура формировать(Команда)

СформироватьНаСервере();

КонецПроцедуры

Процедура СформироватьНаСервере()

// удалим фразу СКД "Отчет не сформирован. Нажмите...."

УстановитьПараметрыКомпоновки();

Элементы.Результат.ОтображениеСостояния.Видимость=ложь;

Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;

Элементы.Результат.ОтображениеСостояния.Картинка = Новый Картинка;

Элементы.Результат.ОтображениеСостояния.Текст = "";

// Очистка табличного документа

Результат.Очистить();

// получить из реквизита формы реквизит - объект для доступа к его

// компонентам

ОбОтчет=РеквизитФормыВЗначение("Отчет");

// вывод "Шапки" отчета обычным способом

Макет =ОбОтчет.ПолучитьМакет("МакетДляШапкиИПодвала");

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

ОбластьШапка.Параметры.ВыбДатаСФорматом=Формат(ВыбДата,"ДФ=dd.MM.yyyy");

Результат.Вывести(ОбластьШапка);

// остальной вывод - по СКД

СхемаКомпоновкиДанных = ОбОтчет.СхемаКомпоновкиДанных;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Отчет.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.ОтображатьПроцентВывода = Истина;

ПроцессорВывода.Вывести(ПроцессорКомпоновки);

// вывод "Подвала" отчета обычным способом

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

ОбластьПодвал.Параметры.ГлавБух=Константы.ГлавныйБухгалтер.Получить();

Результат.Вывести(ОбластьПодвал);

КонецПроцедуры

Процедура УстановитьПараметрыКомпоновки()

пОтчета = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");

Если НЕ пОтчета = Неопределено Тогда

пОтчета.Значение = ВыбДата;

пОтчета.Использование=Истина;

КонецЕсли;

КонецПроцедуры

Запустим отчет в режиме В 1С:Предприятия (Рис.15.6.):

Рис.15.6. Запуск отчета в режиме 1С:Предприятия

Результат (Рис.15.7.):

Рис.15.7. Внешний вид отчета с оспользованием внешних макетов

Замечание. Для отключения вывода в отчет значений параметров отчета на закладке Другие настройки необходимо отключить стандартную форму вывода параметров (Рис.15.8.):

Рис. 15.8. Отключение вывода в отчет параметров в стандартной форме.

Результат (Рис.15.9.):

Рис.15.9. Результат отключения стандартного вывода параметров отчета