Книга знаний

1С:Предприятие / v8 / Типовые конфигурации / УПП 8.0

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,Сч).ШиринаКолонки);
      КонецЦикла;
    КонецЕсли;
    СохраненныеНастройки.Вставить("МассивШиринКолонок", МассивШиринКолонок);
    

    А в процедуре-обработчике «ПослеВосстановленияЗначений», вносим следующий код:
    ЭтотОтчет.ВосстановитьНастройкиИзСтруктуры(СохраненныеНастройки, ПоказыватьЗаголовок);
    СохраненныеНастройки.Свойство("МассивШиринКолонок", ОбщийОтчет.мМассивШиринКолонок); // Восстанавливаем массив ширин колонок
    

    • «ПриЗакрытии» - процедура-обработчик события при закрытии формы. В данную процедуру, обычно, добавляют функции сохранения параметров формы
    • «ОбработкаОповещения» - процедура-обработчик сообщений. Используется для обновления элементов отбора на форме, в случае, если изменились настройки отборов в построителе отчета при вызове формы настройки
    • «ДокументРезультатОбработкаРасшифровки» - процедура-обработчик события "Обработка расшифровки" поля табличного документа ДокументРезультат. Вызывает процедуру модуля общего отчета «ОбработкаРасшифровки»
    • В модуле формы, также, помещаются процедуры-обработчики событий элементов отбора,  выбора даты и .т.д., состав данных обработчиков зависит от вида пользовательского отчета.
    Процедуры и функции общего назначения:
    • «УправлениеПараметрамиОтображенияЭлементовФормы» -    управляет пометками кнопок на панели инструментов
    • «ОбновитьОтчет» - обновляет таблицу отчета, вызывается при нажатии кнопки «Сформировать», а также когда нужно убрать / задать заголовок отчета (кнопка «Заголовок»), в последнем случае выводится только заголовок отчета В процедуре помещается вызов процедуры модуля отчета «СформироватьОтчет»
    • «ВыводЗаголовка» - процедура – управляет выводом заголовка, вызывает из модуля отчета процедуру «СформироватьОтчет»
    • «СформироватьЗаголовокФормы» - процедура, настраивает заголовок формы, вызывает функцию общего модуля «СформироватьЗаголовокОсновнойФормы». Заголовок, возвращаемы данной функцией состоит из названия отчета, даты начала и даты окончания формирования отчета. Как правило, «СформироватьЗагловокФормы» вызывает обработчик события обновления отображения формы.

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика