Содержание
При выводе отчетов с помощью построителя отчета иногда возникает необходимость обеспечить дополнительное форматирование полей в отчете, сохранив при этом возможность настройки пользователем всех параметров отчета. Одним из возможных вариантов реализации данной функциональности является программная доработка макета, автоматически генерируемого построителем отчета. В данном разделе описываются некоторые приемы, которые можно использовать для доработки сгенерированного макета.
Свойство построителя отчета "Макет"
Объект ПостроительОтчета имеет свойство Макет. Это свойство содержит макет — табличный документ, который будет использован для вывода отчета. В случае, когда данное свойство не установлено, построитель отчета генерирует макет автоматически при каждом доступе к значению данного свойства и использует сгенерированный макет для вывода отчета. Если программно изменить значение данного свойства, то построитель отчета перестает генерировать макет, а для вывода отчета будет использовать установленный макет. Для того чтобы построитель отчета продолжил автоматическую генерацию макета, необходимо "сбросить" свойство Макет, присвоив ему значение Неопределено.
Пример установки макета:
Пример сброса макета и получения автоматически сгенерированного макета:
Изменение сгенерированного макета
При необходимости доработки автоматически сгенерированного макета достаточно получить автоматически сгенерированный макет, произвести в нем необходимые изменения и установить его в качестве макета.
В данном примере были изменены цвет фона и цвет текста во всем макете.
Изменение оформительских свойств для определенных полей
Если необходимо доработать формат некоторого поля, выводимого в отчет, необходимо найти ячейку, в которой располагается данное поле, и изменить значение формата в данной ячейке.
В приведенном примере в макете ищется поле Количество и устанавливается формат поля — два знака после запятой.
Аналогичным приемом можно воспользоваться для установки ширины колонки, в которой располагается поле.
Изменение полей для определенных группировок
Иногда возникает потребность исключения некоторых ресурсов из определенных группировок. Например, требуется выводить поле ВалютнаяСуммаОборот только для группировок, которые располагаются после группировки Валюта, и не выводить для всех вышестоящих группировок. Такой функциональности можно достичь, если доработать макет, удалив из группировок, которые находятся выше группировки Валюта, поле ВалютнаяСуммаОборот.
Работа с макетом оформления
При необходимости использования макета оформления для доработанных макетов следует установить построителю отчета макет оформления после доработки маета и вызвать метод построителя ОформитьМакет(). В приведенном ранее примере следует перед указанным кодом сбросить макет оформления построителя отчета, присвоив ему значение Неопределено, а после доработки макета установить требуемый макет оформления и вызвать метод ОформитьМакет().
• 1С8 Самоучитель. » 1С8 Самоучитель. Консоль отчетов. Язык построителя отчета.
Язык построителя отчета — инструмент программиста.
Язык построителя отчета используется в 1С — запросах. Конструкции языка построителя отчета управляют формированием отчета.
Конструкции построителя заключаются в фигурные скобки.
ВЫБРАТЬ — в этом предложении описываются поля, которые пользователь сможет выбирать для вывода.
ГДЕ — описываются поля, на которые пользователь сможет накладывать ограничения.
— Позволяет пользователю в настройке отчета выбирать поля управления порядком сортировки (закладка "Сортировка").
ИТОГИ ПО — описываются поля, по которым будут выводиться итоговые значения. После всех этих элементов через запятую перечисляются поля, которые могут являться как "реальными" полями, так и псевдонимами полей из списка выборки. После поля можно указывать псевдоним поля для построителя отчета.
Если после поля поставить ".*", то это будет означать, что кроме самого поля построитель даст возможность использовать и все поля "через точку" от данного поля.
В данном примере, в отчете пользователь сможет выбирать в качестве измерения не только номенклатуру но также и все ее реквизиты, например "Номенклатура.ОсновнойПоставщик". Кроме основных элементов, построитель принимает элементы, записанные в параметрах виртуальных таблиц. В таких случаях тип полей зависит от типа параметра, в котором располагаются элементы.
Предлагаем решение Ваших задач 1С.
Внедрение 1С:
- Организуем вам индивидуальное экспресс обучение программам 1С.
- Мы поможем Вам начать работать с программами 1С.
- Мы поможем Вам настроить ваши отчеты в 1С.
- Установим и настроим 1С под ваши задачи.
- Поможем сделать ввод начальных остатков по складам и контрагентам
- Перенесем данные из старых систем.
- Подскажем как избежать ошибок.
Доработка и сопровождение 1С:
- Доработаем существующие или создадим новые печатных формы и документы.
- Разработаем внешние отчеты по Вашим требованиям.
- Напишем внешние обработоки по загрузке документов из учетных (торговых) систем в бухгалтерию.
- Разработаем приложения для выгрузки данных на сайты.
Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.
Звоните: 8 916 710 83 51 Ольга
© j008.ru 2014 Обратная связь: j008@j008.ru
Примеры по программированию в 1с 7.7, 8.1, 8.2
пятница, 28 сентября 2012 г.
Использование УсловноеОформление в построителе отчета
Необходимо было изменить формат даты в выходной форме отчета, сделанного с помощью построителя отчета:
УслФорм = ПостроительОтчетаОтчет.УсловноеОформление;
Если УслФорм.Количество()=0 Тогда
УслФормК = УслФорм.Добавить("Количество","Количество");
УслФормК.Заголовок="Количество";
УслФормК.Имя = "Количество";
УслФормК.Использование = Истина;
УслФормК.Область.Добавить("Количество",,ТипОбластиОформления.Поле);
УслФормК.Область.Добавить("Количество45",,ТипОбластиОформления.Поле);
Отбор = УслФормК.Отбор;
НовОтбор = Отбор.Добавить("РазницаК");
НовОтбор.ВидСравнения=ВидСравнения.НеРавно;
НовОтбор.Значение=0;
НовОтбор.Использование=Истина;
Формат_ = УслФормК.Оформление.ЦветФона;
Формат_.использование = Истина;
Формат_.Значение = WebЦвета.Красный;
УслФормС = УслФорм.Добавить("Сумма","Сумма");
УслФормС.Заголовок="Сумма";
УслФормС.Имя = "Сумма";
УслФормС.Использование = Истина;
УслФормС.Область.Добавить("Сумма",,ТипОбластиОформления.Поле);
УслФормС.Область.Добавить("Сумма45",,ТипОбластиОформления.Поле);
Отбор = УслФормС.Отбор;
НовОтбор = Отбор.Добавить("РазницаС");
НовОтбор.ВидСравнения=ВидСравнения.НеРавно;
НовОтбор.Значение=0;
НовОтбор.Использование=Истина;
Формат_ = УслФормС.Оформление.ЦветФона;
Формат_.использование = Истина;
Формат_.Значение = WebЦвета.Красный;
КонецЕсли;