v8: Использование универсальных отчетов в типовых конфигурациях 1СПредметом данной статьи является описание универсальных отчетов, которые используются в таких конфигурациях 1C как «Управление торговлей» (УТ), «Управление производственным предприятием» (УПП) | | Автор статьи: Neco | Редакторы: Мелкий бес, Последняя редакция №3 от 19.05.06 | История URL: http://kb.mista.ru/article.php?id=230 | |
Ключевые слова: Универсальный отчет, Общий отчет, ОтчетОстаткиИОбороты, ОтчетСписокКроссТаблица, Остатки и Обороты, Список кросс / таблица
Большинство отчетов построены на одних и тех же базовых принципах. Самый быстрый способ разработать отчет это воспользоваться встроенным в платформу конструктором «Конструктор выходных форм». Однако, при разработке (или доработке) типовой конфигурации перед программистами ставится требование по унификации программного кода, а также форм справочников, документов и выходных форм отчетов. Поэтому в типовых конфигурациях часто используемый программный код выносят в общие модули, а для унификации выходных форм отчетов используют специальные «универсальные» отчеты.
Все множество отчетов в типовых конфигурациях можно разделить на отчеты формируемые на основании общих отчетов, когда все функции по формированию выходной формы и настроек передаются во внешний модуль общего отчета и сформированные с использованием построителя, когда все функции формирующие выходную форму содержатся в модуле объекта.
В УТ и УПП существуют два общих отчета: «Отчет остатки и обороты (ОтчетОстаткиИОбороты)» и «Отчет список кросс таблица (ОтчетСписокКроссТаблица)». Первый «Отчет остатки и обороты (ОтчетОстаткиИОбороты)» предназначен для формирования линейных отчетов типа «Начальный остаток – Приход – Расход – Конечный остаток», при этом группировки выводятся по строкам. Второй отчет «Список / кросс таблица (ОтчетСписокКроссТаблица)» предназначен для вывода кросс таблиц, когда группировки разворачиваются не только по строкам, но и по столбцам.
Структура универсальных отчетов
Рассмотрим реквизиты, элементы формы и процедуры модулей универсальных отчетов. Состав реквизитов, функций у отчетов несколько отличаются, поэтому отличия «Список / кросс таблица (ОтчетСписокКроссТаблица)» от «Отчет остатки и обороты (ОтчетОстаткиИОбороты)» будем приводить ниже описания общих реквизитов, функций, элементов формы.
Реквизиты отчета:
- «ИмяРегистра» - строка, наименование регистра накопления из которого получаем данные
«ДатаНач» – дата, с которой начинается выборка данных - «ДатаКон» – дата, по которую производится выборка данных. Т.е. период формирования отчетов с «ДатаНач» по «ДатаКонк»
- «ПостроительОтчета» – тип ПостроительОтчета, данный реквизит содержит в себе экземпляр объекта ПостроительОтчета с помощью которого формируется вывод информации в табличную часть, производится управление настройками отчета (группировками, отборами, сортировкой), а также происходит управление внешним видом отчета (выводи итогов по всем уровням, раскрашивание группировок)
- «ИспользоватьСвойстваИКатегории» –булево, предназначен для уточнения отчета по свойствам и категориям объектов. После указания данного параметра в настройках отчета предоставляется возможность выбирать те или иные свойства и категории объектов для группировок, отборов и упорядочивания
- «СохраненныеНастройки» – структура, в который помещаются настройки, которые сохраняются при закрытии отчета и восстанавливаются при последующем открытии
- «РаскрашиватьИзмерения» – булево, установка данного реквизита в Истина указывает на то что нужно при выводе строк группировок и полей их раскрашивать для лучшего представления информации на экране
- «ВыводитьПоказателиВСтроку» – булево, указывает на возможность выводить группировки в одну строку
- «ВыводитьДополнительныеПоляВОтдельнойКолонке» – булево, если в настройках отчета указаны дополнительные поля их нужно выводить в разных колонках
- «ВыводитьИтогиПоВсемУровням» – булево, для некоторых группировок можно специально запретить выводить цифры по показателям, данный реквизит снимает данный запрет
- «ПоказыватьЗаголовок» – булево, указывает выводить или не выводить заголовок на экран (регулируется кнопкой «Заголовок» на форме отчета)
- Табличная часть «Показатели» - содержит в себе список выводимых на экран показателей
В отчете «Список кросс / таблица (ОтчетСписокКроссТаблица)»:
- «Использовать интервальные группировки (ИспользоватьИнтервальныеГруппировки)» - булево, указывает на возможность выводить данные по интервалам периодов
- Табличная часть «Интервалы» - содержит в себе список интервалов
Формы отчета:
«ФормаОсновная» – основная форма вывода данных.
Реквизиты «ФормаОсновная»:
- «ОтчетОбъект» - основной объект отчета, ссылка на «ОтчетОстаткиИОбороты» или «ОтчетСписокКроссТаблица»
В модуле формы, содержатся следующие переменные:
- «ВысотаЗаголовка» - число, количество строк в заголовке, данная переменная используется для, когда нужно скрыть/отобразить заголовок отчета в табличном документе
- «ИдентификаторОкнаРасшифровки»
- «ФормаНастройки» - ссылка, на форму настройки
- «НеЗаполнятьНастройкиПриОткрытии» - булево, переменная используется, когда не нужно заполнять начальные настройки отчета. При первом открытии переменная равна ЛОЖЬ, при расшифровке отчета переменная будет установлена в ИСТИНА
- «СтруктураСвязиЭлементовСДанными» - структура, содержит данные указание каким элементам формы соответствуют реквизиты отчета
Элементы формы «ФормаОсновная»:
- «КоманднаяПанельФормы» – содержит управляющие кнопки формы:
o Меню «Подменю» (Действия) – содержит список возможных действий формы
o Кнопка «Сформировать» – при нажатии формирует отчет
o Кнопка «Отбор» – открывает/закрывает панель отбора
o Кнопка «Заголовок» – открывает/закрывает в табличной части строки с заголовком отчета
o Кнопка «Настройка» - открывает форму настроек отчета
o Кнопки «ВосстановитьНастройки», «СохранитьНастройки» - сохраняют и восстанавливают настройки отчета
o Кнопка «Справка (Действие1)» – вызывает справку по отчету - «Период с: (ДатаНач)», «по: (ДатаКон)» - поле ввода, ввод даты начала/окончания выбора данных для отчета
- «Раздел учета (ИмяРегистра)» - поле выбора, наименование регистра по которому формируется отчет
- «ПанельОтбор» - панель, на которой помещаются элементы для реализации механизма быстрого доступа к отборам отчета
- «ДокументРезультат» - табличный документ, куда выводятся данные отчета
Модуль формы «ФормаОсновная»:
Перечислим процедуры:
• «ПередОткрытием» - обработчик события перед открытием формы. Содержит код который выполняется для инициализации начальных настроек отчета. Восстанавливает сохраненные данные, реквизит «ИмяРегистра».
• «ПриОткрытии» - обработчик события при открытии формы.
• «ОбновитьОтчет» - процедура формирует отчет и обновляет табличный документ «ДокументРезультат»
• «ОтобразитьОтбор» - отобразить/скрыть панель формы отбора
• «ЗаполнитьОбъектПоДиалогу» - заполняет реквизиты отчета по реквизитам формы
• «ЗаполнитьДиалогПоОбъекту» - заполнение реквизитов формы по реквизитам отчета
• «ВыводЗаголовка» - вывод заголовка отчета
• «СформироватьЗаголовокФормы» - формирует текст заголовка
• «ПослеВосстановленияЗначений» - после восстановления значений на форме. В данную процедуру - обработчик события формы можно вставить код который будет выполнять установку значений реквизитов отчета и формы после открытия формы отчета. Сохраняемые значения обычно помещаются в реквизит СохраненныеНастройки и после восстановления формы все настройки помещаются в реквизит СохраненныеНастройки.
• «ПередСохранениемЗначений» - обработчик – события формы, выполняется при закрытии формы и сохранении значений из реквизита СохраненныеНастройки.
• «ОбработкаОповещения» - обработчик оповещения
• «КнопкаНастройкаПериодаНажатие», «ПолеНастройки1ПриИзменении», «ПолеНастройкиС1ПриИзменении», «ПолеНастройкиПо1ПриИзменении», «ПолеВидаСравнения1ПриИзменении» - обработчики событий элементов формы
• «ДокументРезультатОбработкаРасшифровки» - обработчик события "Обработка расшифровки" поля табличного документа «ДокументРезультат»
«ФормаНастройка» - форма предназначенная для настройки отчета, вызывается при нажатии кнопки «Настройка» в основной форме отчета.
Реквизиты «ФормаНастройка»:
• «ОтчетОбъект» - отчет, ссылка на «ОтчетОстаткиИОбороты» или «ОтчетСписокКроссТаблица»
В отчете «Список / кросс таблица (ОтчетСписокКроссТаблица)»:
• «ВызывающийОтчет» - тип произвольный
• «ИнтервальнаяГруппировка» - тип строка
• «ИнтервальноеПоле» - тип произвольный
• «ОтобранныеИнтервалы» - тип таблица значений. Связан с элементом формы «ОтобранныеИнтервалы» на закладке «Интервалы группировок»
Элементы «ФормаНастройка»:
«Панель отчета (ПанельОтчета» содержит следующие закладки:
Закладка «Общие» содержит элементы:
• «Период с: (ДатаНач)», «по: (ДатаКон)» - поле ввода, дата начала и окончания выборки данных из отчета. Данные связаны с реквизитами отчета «ДатаНач» и «ДатаКон»
• «Раздел учета (ИмяРегистра)» - поле выбора, данные элемента связаны с реквизитом отчета «ИмяРегистра», содержит имя регистра по которому формируется отчет. Если «ФормаНастройки» вызывается из внешнего отчета, тогда это поле недоступно для просмотра и изменения
• «Использовать свойства и категории (ИспользоватьСвойстваИКатегории)» - флажок, устанавливает флаг использования свойств и категорий объектов, данные этого флажка связаны с данными реквизита отчета «ИспользоватьСвойстваИКатегории»
• «Раскрашивать измерения (РаскрашиватьИзмерения)» - флажок, данные связаны с реквизитами отчета «РаскрашиватьИзмерения», если флажок установлен тогда уровни группировок выводимы в табличный документ будут выделены цветами
• «Выводить итоги по всем уровням (ВыводитьИтогиПоВсемУровням)» - флажок, если установлен, тогда в табличный документ выводятся итоги по всем уровням группировок, связан с реквизитом отчета «ВыводитьИтогиПоВсемУровням»
• «Выводить в разных колонках (ВыводитьВРазныхКолонках)» - флажок, по-умолчанию значения показателей выводятся в одной ячейке, при установке данного флажка значения показателей будут выводится в двух ячейках
• «СписокПоказателей (Показатели)» - табличная часть, содержит список показателей
В отчете «Список / кросс-таблица (ОтчетСписокКроссТаблица)»:
• «Период (ДатаНач)» - поле ввода даты, предназначено для выбора периода. Видимость данного поля регулируется переменной модуля «мРежимВводаПериода», в зависимости от значения данной переменной в данном поле можно выбирать период с шагом день, месяц, квартал, год
Закладка «Группировки»:
• «ИзмеренияСтроки (ПостроительОтчета.ИзмеренияСтроки)» - тип ИзмеренияПостроителяОтчета, измерения, откладываемые по строкам отчета
В отчете «Список / кросс таблица (ОтчетСписокКроссТаблица)»:
• «ИзмеренияКолонки (ПостроительОтчета. ИзмеренияКолонки)» - тип ИзмеренияПостроителяОтчета, измерения, откладываемые по колонкам отчета
В отчете «Список / кросс таблица (ОтчетСписокКроссТаблица)»: если реквизит «ИспользоватьИнтервальныеГруппировки» установлен в «Истина», тогда становится доступным закладка «Интервалы группировок»:
• «Наименование (ИнтервальноеПоле)» - поле выбора. При открытии формы заполняется теми измерениями из коллекции «ПостроительОтчета.ДоступныеПоля» у кторых наименование начинается на «ИН»
• «ОтобранныеИнтервалы» - таблица значений. При изменении «Наименование (ИнтервальноеПоле)» заполняется список выбранных интервалов
Закладка «Отбор»:
• «Отбор (ПостроительОтчета.Отбор» - тип Отбор. Отбор построителя отчетов
Закладка «Поля»:
• «ВыбранныеПоля (ПостроительОтчета.ВыбранныеПоля)» - тип ПоляПостроителяОтчетов. Поля для вывода в отчет
• «Выводить дополнительные поля в отдельной колонке (ВыводитьДополнительныеПоляВОтдельнойКолонке)» - флажок, при установке выводит поля в отдельных колонках
Закладка «Сортировка»:
• «Порядок (ПостроительОтчета.Порядок)» - тип Порядок. Порядок для вывода отчета
Модуль «ФормыНастройки», содержит следующие процедуры и обработчики событий:
• «ЗаполнитьДиалогПоОбъекту» - заполняет диалог по значениям реквизитов отчета
• «ПередОткрытием» - обработчик события "Перед открытием" формы отчета
• «ИмяРегистраПриИзменении», «КнопкаНастройкаПериодаНажатие», «ОсновныеДействияФормыОК», «ИспользоватьСвойстваИКатегорииПриИзменении», «КоманднаяПанельСписокПоказателейУстановитьВсе», «КоманднаяПанельСписокПоказателейСнятьВсе», «ОтборЗначениеНачалоВыбора», «ОтборПередУдалением», «ДатаНачПриИзменении», «ДатаКонПриИзменении» - обработчики событий соответствующего элемента формы
• В модуле формы также инициализируется переменная СписокРегистров (функция ПолучитьСписокРегистровОстатков) и указывается как список для выбора элемента формы «Раздел учета (ИмяРегистра)»
В отчете «Список / кросс таблица (ОтчетСписокКроссТаблица)»:
• «ОтобратьИнтервалы» - процедура формируем список отобранных интервалов в реквизите «ОтобранныеИнтервалы», вызывается при изменении поля выбора «Наименование (ИнтервальноеПоле)»
• «ВставитьИнтервалыПоИмени» - процедура вызывается перед формированием отчета, заполняет табличную часть «Интервалы»
• «КнопкаНастройкаПериодаНажатие» - обработчик нажатия кнопки настройки периода
• «ПлюсПериодНажатие», «МинусПериодНажатие» - обработчик нажатия кнопки «+», «-» периода
• «ИнтервальноеПолеПриИзменении», «ОтобранныеИнтервалыПослеУдаления», «ОтобранныеИнтервалыПриОкончанииРедактирования», «ОтобранныеИнтервалыВГраницаПриИзменении» - обработчики событий элементов закладки «Интервалы группировок»
• В модуле формы инициализируется поле выбора «ИнтервальноеПоле».
Модуль объекта отчета:
Переменные модуля, которые влияют на формирования отчета:
• «мТаблицаПоказатели» - таблица значений, содержит все возможные показатели, по-умолчанию заполняется показателями из табличной части «Показатели»
• «НП» - настройка периода, используется при вызове «КнопкаНастройкиПериода»
• «мСоответствиеНазначений» - соответствие, содержащая назначения свойств и категорий именам
• «мСтруктураСвязиПоказателейИИзмерений» - соответсвие, содержит связь показателей и измерений. Используется когда нужно выводить значения определенных показателей только в строках с определенными группировками
• «мМассивШиринКолонок» - массив ширин колонок табличного документа для сохранения между формированиями отчета. Используется при обновлении отчета, для того чтобы сохранять ширину колонок, в том числе и ту которую установил пользователь
• «мИсходныйМакетОтчета» - макет, используемый для отчета, по умолчанию "Макет", но может быть переопределен. Переменная нужна если предполагается использовать макет отличный от исходного макета универсального отчета «Макет»
• «мНазваниеОтчета» - строка, название отчета
• «мВыбиратьИмяРегистра» - булево, признак выбора (изменения) имени регистра (вида отчета), влияет на видимость элемента формы настройки «Раздел учета (ИмяРегистра)»
• «мВыбиратьИспользованиеСвойств» - булево, признак выбора (изменения) флажка использования свойств и категорий
• «СтруктураФорматаПолей» - структура, хранит формат полей примитивных типов, используется для форматирования полей типа дата в строковом представлении
• «мСтруктураДляОтбораПоКатегориям» - структура, предназначена для связи отборов Построителя с категориями из соединяемых таблиц
В отчете «Список / кросс таблица (ОтчетСписокКроссТаблица)»:
• «мСтруктураНевыводимыхГруппировок» - структура, хранит список тех группировок, которые не надо выводить. Применяется в тех случаях, когда нужно пропускать итоги, например Номенклатура - Характеристика - Серия: итоги по номенклатуре не нужны, нужно только для всех трех
• «СоответствиеТиповИнтервальныхПолей» - соответствие
Процедуры и функции модуля отчета:
• «ЗаполнитьНачальныеНастройки» - процедура заполняет начальные настройки отчета. Вызывается в модуле формы отчета перед открытием формы (обработчик события «ПередОткрытием»)
• «ОбработкаРасшифровкиСтандартногоОтчета» - процедура, вызывается обработчиком события "Обработка расшифровки" поля табличного документа «ДокументРезультат»
• «ЗаполнитьПоляОсновногоРеквизита» - процедура, вызывается при инициализации основной формы отчет (модуль формы)
• «Настроить» - процедура, настраивает отчет по переданной структуре параметров, вызывается при расшифровке отчета
• «ПолучитьПостроительОтчета» - функция, возвращает построитель отчета
• «ПолучитьОсновнуюФорму» - функция, возвращает основную форму отчета
• «СформироватьСтруктуруДляСохраненияНастроек» - процедура, формирует структуру «СохраненныеНастройки» для сохранения параметров отчета. Вызывается перед сохранением настроек в обработчике события «ПередСохранениемЗначений». Структура состоит из таких полей:
o «ИмяРегистра» – содержит имя регистра
o «НастройкиПостроителя» - содержит настройки построителя: доступные поля, отборы, порядок и т.д.
o «Показатели» - табличная часть «Показатели»
o «ИспользоватьСвойстваИКатегории» - признак использования свойств и категорий
o «ВыводитьДополнительныеПоляВОтдельнойКолонке» - признак вывода дополнительных полей в отдельной колонке
o «ВыводитьИтогиПоВсемУровням» - выводить итоги по всем уровням
o «ВыводитьПоказателиВСтроку» - выводить показатели в строку
o «РаскрашиватьИзмерения» - раскрашивать измерения
o «ЗаголовокПомечен» - показывать или скрывать заголовок
• «ВосстановитьНастройкиИзСтруктуры» - процедура, заполняет из структуры настроек общие параметры отчетов. Вызывается после восстановления настроек в обработчике события «ПослеВосстановленияЗначений»
• «СформироватьОтчет» - выполняет запрос и формирует табличный документ-результат отчета
В отчете «Список / кросс таблица (ОтчетСписокКроссТаблица)»:
• «ЗаполнитьПоказатели» - процедура, заполняет специальную таблицу «мТаблицаПоказатели». Вызывается в процедуре «ЗаполнитьНачальныеНастройки», перед открытием отчета
• «СформироватьЗаголовок» - процедура, формирует табличку-заголовок
• «ВывестиКолонкуШапки» - процедура, выводит шапку таблицы
• «ВывестиПоказатели» - процедура, выводит показатели в строку отчета
• «ПолучитьПоказатели» - процедура, получает значения показателей для вывода в таблицу
• «ВывестиСтроку» - выводит строку отчета
В отчета «Остатки и обороты (ОтчетОстаткиИОбороты)» содержатся следующие макеты:
«Макет» - является макетом для вывода информации в табличный документ «ДокументРезультат», состоит из следующих секций:
• «Заголовок» - горизонтальная секция, содержит ячейки в которые выводится информацию по наименованию отчета, периода формирования, списка выводимых показателей и группировок
• «ШапкаТаблицыОбщая» - содержит ячейки в которые выводятся заголовки столбцов таблицы. Данная секция включает в себя такие вертикальные секции: «Поле» - выводятся наименование группировок и дополнительных полей, «НачальныйОстаток» - показатели начального остатка, «Приход» - показатели прихода, «Расход» - показатели расхода, «КонечныйОстаток» - показатели конечного остатка. Также в секцию входят горизонтальные субсекции: «ШапкаТаблицы» - включает в себя одну строку ячеек «Поле», «Начальный остаток», «Приход», «Расход», «Конечный остаток», «ШапкаТаблицыНиз» - выводит наименование дополнительных полей. Если нет нужды выводить дополнительные поля выводится только секция «ШапкаТаблицы».
• «Подвал» - горизонтальная секция, используется как завершающая секция при выводе таблицы, данных не выводит, но содержит сплошную линию, завршая тем самым окантовку таблицы сполшными линиями
• «СтрокаИерархии» - горизонтальная секция выводится только в случае если способ вывода группировки справочников «по иерархии», выводит группу элементов справочника
• «Строка» - горизонтальная секция, выводить строку группировки
• «СтрокаДетали» - горизонтальная секция, в случае если в настройках указано выводить дополнительные поля, в данную строку выводятся дополнительные поля
• «ОбщиеИтоги» - горизонтальная секция , в данную строку выводятся общие итоги
• «ОформлениеИзмерений» - горизонтальная секция содержит оформление измерений, если в настройках установлен флажок «Раскрашивать измерения (РаскрашиватьИзмерения)» для вывода группировок и полей нас разных уровнях используются настройки оформления ячеек из секции «ОформлениеИзмерений»
• «ОформлениеДеталей» - горизонтальная секция содержит оформление деталей
«ПараметрыОтчетов…» - макеты в которых указываются настройки параметров для вывода отдельных отчетов. Заполнение начальных настроек отчета по макету вызывается функцией «ЗаполнитьНачальныеНастройкиПоМакету».
В макете можно указать состав показателей, группировок и полей для вывода в отчет, содержит две секции:
• «Показатели» - горизонтальная секция, ячейки в которых указывается состав показателей и параметры вывода показателей в отчет. В данной секции можно указывать также вычисляемые показатели
• «Группировка» - горизонтальная секция, содержит ячейки с перечислением группировок выводимых в отчет
В отчете «Список кросс / таблица (ОтчетСписокКроссТаблица)» содержатся следующие макеты:
«Макет» - является макетом для вывода информации в табличный документ «ДокументРезультат», состоит из тех же секций что и макет отчета «Отчет остатки и обороты (ОстаткиИОбороты)» за тем исключением, что вертикальные секции «НачальныйОстаток», «Приход», «Расход», «КонечныйОстаток» заменены секцией «Показатель» и добавлена горизонтальная секция «ШапкаТаблицыСтрока» для вывода наименований группировок в строке.
Построение пользовательских выходных форм на основании универсальных (общих) отчетов
Теперь, когда мы познакомились со структурой универсальных отчетов, рассмотрим их использование для построения других выходных форм.
«Остатки и обороты (ОтчетОстаткиИОбороты)» (далее ОиО) и «Список кросс / таблица (ОтчетСписокКроссТаблица)» (далее СКТ) - являются самостоятельными отчетами, их можно использовать для получения различной информации по всем регистрам накоплений, которые есть в конфигурации. Но часто возникает потребность в формировании более подробных отчетов, основанных на сложных запросах и выборках (такие выходные формы мы будем называть пользовательскими). Для этого создается отдельная выходная форма, в которой с помощью общих отчетов мы можем организовать вывод нужной информации.
Основная форма
Рассмотрим как взаимодействуют пользовательские отчеты с общими отчетами. Первое, на что стоит обратить внимание, это в данных отчета есть реквизит «ОбщийОтчет», который имеет тип «ОтчетОбъект.ОтчетОстаткиИОбороты» или «ОтчетОбъект.ОтчетСписокКроссТаблица», в данный реквизит помещается экземпляр общего отчета, реквизиты, методы которого используем для формирования выходной формы. В основной реквизит формы пользовательского отчета «ОбщийОтчет» тоже имеет тип ОиО или СКТ. Для ссылки на объект пользовательского отчета используется реквизит формы «ЭтотОтчет».
Структура основной формы такая же как и у родительского общего отчета:
• «Командная панель (КомманднаяПанельФормы)» - командная панель, содержит управляющие кнопки: «Сфорировать» - формирует отчет, «Отбор» - показать/скрыть панель отборов («ПанельОтбор»), «Заголовок» - показать/скрыть заголовок в табличном документе (элемент формы «ДокументРезультат»), «Настройка» - открывает форму настроек отчета, «СохранитьЗначения» - сохраняет значения настроек отчета, «ВосстановитьЗначения» - восстанавливает знаечния настроек отчета, доступ ко всем вышеперчисленным кнопкам пможно получить через подменю «Действия».
• «Период с: (ДатаНач)», «по: (ДатаКон)» или «На дату: (ДатаКон)» - поле ввода дата, данные связаны с реквизитами общего отчета «ДатаНач» или «ДатаКон».
• «Панель отборов (ПанельОтбор)» - панель, на которую помещаются элементы для быстрого отбора. Для настройки отбора нужно три элемента формы флажок, поле выбора и поле ввода, наименование каждого элемента начинается с определенного названия плюс имя отбора так как он должен быть задан в построителе отчета:
o «ФлажокНастройки…» - флажок связанный с реквизитом отборов «Использование», при установке данного флажка в построителе отчетов будет включен соответствующий отбор
o «ПолеВидаСравнения…» - поле выбора, связан с реквизитом отборов «ВидСравнения», содержит способ сравнения значения отбора с отбираемыми значениями
o «ПолеНастройки…» - поле ввода, связан с реквизитом отборов «Значение», содержит значение по которому осуществляется фильтрация
Пример использования: нужно предоставить доступ к отбору «Номенклатура». Добавляем на панель отборов три элемента формы, называем их следующим образом: флажок «ФлажокНастройкиНоменклатура», поле выбора «ПолеВидаСравненияНоменклатура», поле ввода «ПолеНастройкиНоменклатура». Проверяем что в обработчике события формы «ПередОткрытием» выполняется процедура «УстановитьСвязьПолейБыстрогоОтбораНаФорме», которая связывает элементы формы с данными отбора построителя отчетов. Все. Если в данных отчета есть отбор «Номенклатура», то управлять отбором мы сможем на панели отборов, не вызывая форму настройки отчетов.
• «Табличный документ (ДокументРезультат)» - собственно табличный документ куда выводятся данные отчета
При первом открытии пользовательского отчета происходит создание экземпляра объекта «ОбщийОтчет». Нужно четко понимать, что в рамках пользовательского отчета мы оперируем двумя объектами «ОбщийОтчет» - экземпляр объекта общего отчета и «ЭтотОтчет» - экземпляр объекта пользовательского отчета.
Пример использования: если нужно вызвать процедуру модуля пользовательского отчета «ЗаполнитьНачальныеНастройки()», то пишем такую конструкцию «ЭтотОтчет.ЗаполнитьНачальныеНастройки()», а чтобы вызвать процедуру общего отчета «ЗаполнитьПоляОсновногоРеквизита()», пишем «ОбщийОтчет. ЗаполнитьПоляОсновногоРеквизита()». Заметим, что в модуле формы для вызова процедур общего отчета просто указать имя процедуры, а в модуле объекта пользовательского отчета нужно писать «ОбщийОтчет.» и название процедуры.
Перечислим основные процедуры и функции формы пользовательского отчета:
• При инициализации формы выполняется процедура «ЗаполнитьПоляОсновногоРеквизита», которая заполняет поля и реквизиты основного объекта формы. Также устанавливаются переменные формы
• «ОбновлениеОтображения» - процедура, обработчик обновления данных формы
• Перед открытием формы вызывается процедура модуля пользовательского отчета «ЗаполнитьНачальныеНастройки», выполняется восстановление значений параметров формы и связь между элементами формы и отборами построителя отчетов: «УстановитьСвязьПолейБыстрогоОтбораНаФорме»
• «ПриОткрытии» - процедура-обработчик события при открытии формы
Сохранение и восстановление параметров отчета осуществляется следующими процедурами:
• «ПослеВосстановленияЗначений» - процедура-обработчик события после восстановления сохраненных значений, вызывает процедуру модуля отчета «ВосстановитьНастройкиИзСтруктуры».
• «ПередСохранениемЗначений» - процедура-обработчик события перед сохранением значений, вызывает функцию модуля отчета «СформироватьСтруктуруДляСохраненияНастроек», в которой формируется структура сохраненных настроек и присваивается реквизиту «СохраненыеНастройки»
Во всех отчетах основанных на ОиО или СКТ сохранение параметров настроек реализовано следующим образом. В свойствах формы указывается «Сохранять значения» и в списке «Сохраняемые значения» выбирается реквизит «СохраненныеНастройки». В обработчик события «Перед сохранением значений», «После восстановления значений» вставляют код, который вызывает процедуры модуля общего отчета: «СформироватьСтруктуруДляСохраненияНастроек» для сохранения настроек и «ВосстановитьНастройкиИзСтруктуры» для восстановления настроек отчета. Структура настроек уже описывалась в разделе про универсальные отчета.
Пример использования: после формирования отчета пользователи могут настраивают ширину колонок табличного документа (нажимая Ctrl +позиционируя ширину курсором мыши). В общих отчетах массив ширин колонок хранится в переменой мМассивШиринКолонок, при обновлении отчета ширина колонок настраивается исходя из данных которые хранятся в этом массиве. Задача состоит в том, чтобы при закрытии отчета сохранять массив ширин колонок, а после открытии отчета восстанавливать ширины колонок, так как это было задано пользователем перед закрытием. Для этого в обработчик события перед сохранением значений формы «ПередСохранениемЗначений» в структуре «СохраненныеНастройки», добавляем массив, который сформирован следующим образом:
Если ЭлементыФормы.ДокументРезультат.ВысотаТаблицы > 0 Тогда // Запоминать следует, если документ не пустой
Для Сч=1 По ЭлементыФормы.ДокументРезультат.ШиринаТаблицы Цикл
МассивШиринКолонок.Добавить(ЭлементыФормы.ДокументРезультат.Область(1,Сч).ШиринаКолонки);
КонецЦикла;
КонецЕсли;
СохраненныеНастройки.Вставить("МассивШиринКолонок", МассивШиринКолонок);
А в процедуре-обработчике «ПослеВосстановленияЗначений», вносим следующий код:
ЭтотОтчет.ВосстановитьНастройкиИзСтруктуры(СохраненныеНастройки, ПоказыватьЗаголовок);
СохраненныеНастройки.Свойство("МассивШиринКолонок", ОбщийОтчет.мМассивШиринКолонок); // Восстанавливаем массив ширин колонок
• «ПриЗакрытии» - процедура-обработчик события при закрытии формы. В данную процедуру, обычно, добавляют функции сохранения параметров формы
• «ОбработкаОповещения» - процедура-обработчик сообщений. Используется для обновления элементов отбора на форме, в случае, если изменились настройки отборов в построителе отчета при вызове формы настройки
• «ДокументРезультатОбработкаРасшифровки» - процедура-обработчик события "Обработка расшифровки" поля табличного документа ДокументРезультат. Вызывает процедуру модуля общего отчета «ОбработкаРасшифровки»
• В модуле формы, также, помещаются процедуры-обработчики событий элементов отбора, выбора даты и .т.д., состав данных обработчиков зависит от вида пользовательского отчета.
Процедуры и функции общего назначения:
• «УправлениеПараметрамиОтображенияЭлементовФормы» - управляет пометками кнопок на панели инструментов
• «ОбновитьОтчет» - обновляет таблицу отчета, вызывается при нажатии кнопки «Сформировать», а также когда нужно убрать / задать заголовок отчета (кнопка «Заголовок»), в последнем случае выводится только заголовок отчета В процедуре помещается вызов процедуры модуля отчета «СформироватьОтчет»
• «ВыводЗаголовка» - процедура – управляет выводом заголовка, вызывает из модуля отчета процедуру «СформироватьОтчет»
• «СформироватьЗаголовокФормы» - процедура, настраивает заголовок формы, вызывает функцию общего модуля «СформироватьЗаголовокОсновнойФормы». Заголовок, возвращаемы данной функцией состоит из названия отчета, даты начала и даты окончания формирования отчета. Как правило, «СформироватьЗагловокФормы» вызывает обработчик события обновления отображения формы. |