Макеты скд. Макеты скд Создание формы отчета

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

В основе работы построителя отчета лежит запрос. Исходя из текста этого запроса построитель отчета предоставляет пользователю возможность интерактивной настройки всех основных параметров, содержащихся в тексте запроса. Например, пользователь может выбрать все, или только некоторые исходные поля, может включать в состав полей поля "через точку" от данного поля, может наложить ограничения на значения некоторых полей, и т.д. Разработчик, используя команды построителя отчета, может изменить состав параметров, доступных пользователю для настройки.

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

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

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

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

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

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

Построение отчета пользователем

Применение построителя отчета дает пользователю возможность настроить состав выводимых полей, измерений по строкам и колонкам, указать условия отбора и сортировки. Все эти действия пользователь может выполнить с помощью мыши, просто указывая нужные поля в форме настройки параметров отчета:

Динамическое формирование макета

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

В построителе отчета унифицирована работа с обычными и кросс-отчетами. Все отчеты настраиваются по единой схеме, и для их отображения используется макет, формируемый построителем автоматически. Например, так выглядит оформленный отчет:

Оформленный кросс-отчет может иметь следующий вид:

Разработчик может заменить автоматически формируемыймакет на специально разработанный макет, что позволяет использовать возможности построителя отчета для формирования специализированных отчетов:

Макет, используемый для формирования итогового табличного документа, может создаваться как с нуля, так и путем редактирования автоматически генерируемого макета:

Механизм оформления

Механизм оформления позволяет описывать и запоминать оформления отчетов (цвета, шрифты, рамки) и использовать запомненные оформления для любых отчетов, формируемых построителем отчетов и сводной таблицей.

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

В дополнение к готовым вариантам оформления, разработчик может самостоятельно добавлять новые варианты оформления, а также предоставлять пользователю возможность создавать собственные варианты оформления.

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

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

Условное оформление

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

Использование этого механизма позволяет, например, зеленым фоном выделить суммы, значения которых превысили 10 000, желтым фоном выделить строки номенклатуры, объем продаж которой превысил 30 000, а красным текстом выделить в отчете строки, содержащие услуги:

Настройка условного оформления построителя отчета возможна как из встроенного языка, так и интерактивными средствами:

Дополнительная информация

Вы можете познакомиться с использованием построителя отчета в реальном режиме времени. Для этого можно скачать демонстрационный ролик "Пример разработки торговой мини-системы", в котором показан процесс разработки торговой мини-системы с использованием этого объекта в отчетах "Остатки и обороты", "Анализ продаж" и "Анализ продаж по периодам".

«Открыть схему компоновки данных » или, что равнозначно, кликнем по знаку лупы.

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

Платформа создаст новый макет, содержащий схему компоновки данных, и сразу же откроет конструктор схемы компоновки данных.

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

Добавим новый набор данных → запрос .

4. Для того чтобы создать текст запроса, запустим конструктор запроса → кнопка Конструктор запроса .

5. В списке «База данных » представлен состав объектов базы данных; на основе данных этих объектов мы имеем возможность построить отчет.

Если раскрыть ветку «РегистрыНакопления », то мы увидим, что кроме таблицы регистра «ОстаткиМатериалов » в этой ветке присутствуют еще несколько виртуальных таблиц , которые формирует система.

6. Поскольку мы хотим видеть как остатки материалов, так и информацию об их поступлении и расходовании, нас будет интересовать виртуальная таблица «ОстаткиМатериалов.ОстаткиИОбороты ». Раскроем ее.

Как вы видите (а если не увидите сразу, то поработайте скроллингом), эта таблица содержит материал, склад и кроме этого начальные и конечные остатки, а также значения прихода, расхода и оборотов для всех ресурсов регистра « ОстаткиМатериалов ».

7. Начнем выбирать поля таблицы в нужном нам порядке двойным щелчком мыши. Сначала выберем Склад и Материал . Затем выберем КоличествоНачальныйОстаток , КоличествоПриход , КоличествоРасход и в заключение КоличествоКонечныйОстаток

В результате окно Поля должно быть заполнено следующим образом:

8. После этого на закладке Группировка укажем групповое поле Склад .

9. Нажмем ОК и вернемся в конструктор схемы компоновки данных.

Текст запроса, который был создан с помощью конструктора, платформа поместит в поле Запрос .

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

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

В нем отображаются поля, которые доступны у текущего набора данных. В нашем случае система 1С:Предприятие заполнила данный список автоматически , из текста запроса, и нет необходимости в его ручной настройке.

10. Перейдем на закладку Настройки и добавим группировку (контекстное меню Новая группировка ).

При этом не станем указывать поле группировки, а просто нажмем ОК .

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

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

Для этого перейдем на закладку Выбранные поля и в окошко Поле перенесем из списка доступных полей:

  • Склад:
  • Материал;
  • КоличествоНачальныйОстаток;
  • КоличествоПриход;
  • КоличествоРасход;
  • КоличествоКонечныйОстаток.

12. Запустим 1С:Предприятие в режиме отладки и посмотрим, как работает отчет.

13. Выполните команду Операции в†’ Отчет в†’ Материалы .

Система автоматически сформирует форму отчета и форму настроек для него.

14. Нажмите Сформировать .

Как видите, наш отчет вполне «презентабелен» и полностью отражает движение материалов, произошедшее в нашей организации.

Создание макета документа ОказаниеУслуги

1. Откройте в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги .

2. Перейдите на закладку Макеты и запустите Конструктор печати :

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

4. На втором шаге нажатием двойной стрелки определим, что все реквизиты нашего документа будут отображены в шапке печатной формы.

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

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

7. На пятом шаге укажем, что конструктор должен вставить новую кнопку в форму документа для вызова процедуры формирования печатной формы, и нажмем ОК .

8. В конфигураторе откроется форма документа и его макет:

9. Проверим макет в работе. Запустите 1С:Предприятие в режиме отладки и откройте документ Оказание услуги №– 1 . Обратите внимание, что в правом нижнем углу документа появилась новая кнопка Печать , которую добавил конструктор.

10. Нажмите на эту кнопку и увидите печатную форму нашего документа.

Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме, - это итоговой суммы документа.

Редактирование макета документа ОказаниеУслуги

1. Откройте конфигуратор, раскройте дерево документа ОказаниеУслуги и дважды щелкните на макете Печать .

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

2. Добавим новую область для вывода итоговой суммы документа:

  • выделим мышью две пустые строки в Документ ОказаниеУслуги: Печать ;
  • выполним команду Таблица в†’ Имена в†’ Назначить имя…¦

3. Назовем область Всего .

4. В созданной области:

  • в колонке Цена , напишем Всего ;
  • в колонке Сумма напишем ВсегоПоДокументу .

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

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

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

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

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

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

6. Теперь откроем модуль формы документа ОказаниеУслуги → ФормаДокумента .

7. Найдем в нем процедуру Печать и после цикла добавим в нее следующие строки:

Смысл добавленного фрагмента прост: мы получаем новую область Всего (ту, которую мы только что добавили к макету).

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

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

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

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

Редактирование формы документа ОказаниеУслуги

1. Откройте в конфигураторе форму документа ОказаниеУслуги → ФормаДокумента.

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

3. Откроем свойства колонки Цена :

  • установим текст подвала → Всего: ;
  • горизонтальное положение в подвале → Прижать вправо ;
  • в шрифте подвала изменим начертание на Жирный .

4. Откроем свойства колонки Сумма:

  • установим горизонтальное положение в подвале→ Прижать вправо ;
  • установим флаг ОтображатьИтогиВПодвале ;
  • в шрифте подвала изменим начертание на Жирный .

5. Запустите 1С:Предприятие в режиме отладки и посмотрите как выглядит теперь форма документа ОказаниеУслуги №– 1.

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


Нас находят: создание отчета в 1с 8 2 с нуля , 1 Откроем в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги 2 Перейдем на закладку Макеты и запустим конструктор печати В открывшемся окне на первом шаге укажем что будет создана новая команда Печать для формирования печ , как делать отчет в 1 с, конструктор документов разработка, Создание отчета с помощью конструктора выходной формы, создание отчетов в 1с 8 002, практикум по созданию отчетов в субд 2007, практикум по созданию методических материалов в области туризма, отчет остатки материалов на складе 1с создание, открыть конструктор макета 1с


Песочница

ювелир 23 августа 2011 в 10:22

Макеты в 1С 8.2 - это не сложно (Часть 1 - Создание макета)

  • Чулан *

Допустим, Вам необходимо вывести подобный отчет:

Данный отчет можно легко построить с помощью системы компоновки данных (СКД), особенно, если все необходимые данные хранятся в одном справочнике. Однако давайте попробуем вывести тот же самый отчет с помощью макета.


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

Теперь создадим новый отчет и назовем его «СписокСотрудников». Перейдем на вкладку «Макеты» и создадим новый макет типа «ТабличныйДокумент».
Перед нами откроется пустой табличный документ, готовый к работе. Теперь нам нужно представить необходимый отчет в виде макета.
Для этого сначала скопируем исходный отчет в чистый табличный документ, т.е. в макет отчета. Получится что-то вроде этого:

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

Для каждой области необходимо присвоить соответствующее имя, для этого необходимо выделить нужную область (в данном случае все области представляют собой группы строк) и нажать на кнопку с пиктограммой, или комбинацию клавиш Ctrl+Shift+N. В появившемся окне нужно вписать имя данной области. Назовем области так, как они указаны на рисунке.
Теперь те ячейки таблицы, в которых должны выводиться данные из информационной базы, необходимо обозначить как содержащие шаблон. Для этого выделяется это поле, и в контекстном меню (правая клавиша мыши) выбирается «Свойства». В выпадающем списке свойства ячейки «Заполнение» необходимо выбрать «Шаблон» (пример на рисунке ниже).

После этого если в тексте ячейки встретится выражение в квадратных скобках, то оно будет восприниматься системой 1С как параметр. Например, если текст ячейки следующий:

Меня зовут [МоеИмя],

То для вывода текста «Меня зовут Иван» достаточно параметру «МоеИмя» присвоить значение «Иван».
В нашем случае шаблоном будет дата вывода отчета, а также все столбцы из строки, содержащей данные сотрудника. В итоге после всех манипуляций макет отчета будет выглядеть следующим образом:

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

Теги: 1С 8, макет, отчеты, макеты

Данная статья не подлежит комментированию, поскольку её автор ещё не является

Песочница

Леонид Якубович 23 августа 2011 в 10:22

Макеты в 1С 8.2 - это не сложно (Часть 1 - Создание макета)

Допустим, Вам необходимо вывести подобный отчет:

Данный отчет можно легко построить с помощью системы компоновки данных (СКД), особенно, если все необходимые данные хранятся в одном справочнике. Однако давайте попробуем вывести тот же самый отчет с помощью макета.


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

Теперь создадим новый отчет и назовем его «СписокСотрудников». Перейдем на вкладку «Макеты» и создадим новый макет типа «ТабличныйДокумент».
Перед нами откроется пустой табличный документ, готовый к работе. Теперь нам нужно представить необходимый отчет в виде макета.
Для этого сначала скопируем исходный отчет в чистый табличный документ, т.е. в макет отчета. Получится что-то вроде этого:

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

Для каждой области необходимо присвоить соответствующее имя, для этого необходимо выделить нужную область (в данном случае все области представляют собой группы строк) и нажать на кнопку с пиктограммой, или комбинацию клавиш Ctrl+Shift+N. В появившемся окне нужно вписать имя данной области. Назовем области так, как они указаны на рисунке.
Теперь те ячейки таблицы, в которых должны выводиться данные из информационной базы, необходимо обозначить как содержащие шаблон. Для этого выделяется это поле, и в контекстном меню (правая клавиша мыши) выбирается «Свойства». В выпадающем списке свойства ячейки «Заполнение» необходимо выбрать «Шаблон» (пример на рисунке ниже).

После этого если в тексте ячейки встретится выражение в квадратных скобках, то оно будет восприниматься системой 1С как параметр. Например, если текст ячейки следующий:

Меня зовут [МоеИмя],

То для вывода текста «Меня зовут Иван» достаточно параметру «МоеИмя» присвоить значение «Иван».
В нашем случае шаблоном будет дата вывода отчета, а также все столбцы из строки, содержащей данные сотрудника. В итоге после всех манипуляций макет отчета будет выглядеть следующим образом:

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

Теги: 1С 8, макет, отчеты, макеты


Ключевые слова: Универсальный отчет, Общий отчет, ОтчетОстаткиИОбороты, ОтчетСписокКроссТаблица, Остатки и Обороты, Список кросс / таблица

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

Структура универсальных отчетов

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

  • «ПостроительОтчета» – тип ПостроительОтчета, данный реквизит содержит в себе экземпляр объекта ПостроительОтчета с помощью которого формируется вывод информации в табличную часть, производится управление настройками отчета (группировками, отборами, сортировкой), а также происходит управление внешним видом отчета (выводи итогов по всем уровням, раскрашивание группировок)
  • «ИспользоватьСвойстваИКатегории» – булево, предназначен для уточнения выборки данных отчета по свойствам и категориям объектов. После указания данного параметра в настройках отчета предоставляется возможность выбирать те или иные свойства и категории объектов для группировок, отборов и упорядочивания

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

  • «ВыводитьПоказателиВСтроку» – булево, указывает на возможность выводить группировки в одну строку
  • «ВыводитьДополнительныеПоляВОтдельнойКолонке» – булево, если в настройках отчета указаны дополнительные поля их нужно выводить в разных колонках

  • «ВыводитьИтогиПоВсемУровням» – булево, для некоторых группировок можно специально запретить выводить цифры по показателям, данный реквизит снимает данный запрет
  • «ПоказыватьЗаголовок» – булево, указывает выводить или не выводить заголовок на экран (регулируется кнопкой «Заголовок» на форме отчета)

  • Табличная часть «Показатели» - содержит в себе список выводимых на экран показателей

  • В отчете «Список кросс / таблица (ОтчетСписокКроссТаблица)»:
  • «Использовать интервальные группировки (ИспользоватьИнтервальныеГруппировки)» - булево, указывает на возможность выводить данные по интервалам периодов
  • Табличная часть «Интервалы» - содержит в себе список интервалов

Формы универсального отчета:
«ФормаОсновная» – основная форма вывода данных.
Реквизиты «ФормаОсновная»:
  • «ОтчетОбъект» - основной объект отчета, ссылка на «ОтчетОстаткиИОбороты» или «ОтчетСписокКроссТаблица»

  • В модуле формы, содержатся следующие переменные:
  • «ВысотаЗаголовка» - число, количество строк в заголовке, данная переменная используется для, когда нужно скрыть/отобразить заголовок отчета в табличном документе
  • «ИдентификаторОкнаРасшифровки»

  • «ФормаНастройки» - ссылка, на форму настройки
  • «НеЗаполнятьНастройкиПриОткрытии» - булево, переменная используется, когда не нужно заполнять начальные настройки отчета. При первом открытии переменная равна ЛОЖЬ, при расшифровке отчета переменная будет установлена в ИСТИНА

  • «СтруктураСвязиЭлементовСДанными» - структура, содержит данные указание каким элементам формы соответствуют реквизиты отчета

  • Элементы формы «ФормаОсновная»:
  • «КоманднаяПанельФормы» – содержит управляющие кнопки формы:
    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 ,Сч).ШиринаКолонки); КонецЦикла; КонецЕсли; СохраненныеНастройки.Вставить("МассивШиринКолонок ", МассивШиринКолонок);
В процедуре-обработчике «ПослеВосстановленияЗначений», вносим следующий код:
ЭтотОтчет.ВосстановитьНастройкиИзСтруктуры(СохраненныеНастройки, ПоказыватьЗаголовок); СохраненныеНастройки.Свойство("МассивШиринКолонок ", ОбщийОтчет.мМассивШиринКолонок); // Восстанавливаем массив ширин колонок
  • «ПриЗакрытии» - процедура-обработчик события при закрытии формы. В данную процедуру, обычно, добавляют функции сохранения параметров формы
  • «ОбработкаОповещения» - процедура-обработчик сообщений. Используется для обновления элементов отбора на форме, в случае, если изменились настройки отборов в построителе отчета при вызове формы настройки

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

    • «УправлениеПараметрамиОтображенияЭлементовФормы» - управляет пометками кнопок на панели инструментов

    • «ОбновитьОтчет» - обновляет таблицу отчета, вызывается при нажатии кнопки «Сформировать», а также когда нужно убрать / задать заголовок отчета (кнопка «Заголовок»), в последнем случае выводится только заголовок отчета В процедуре помещается вызов процедуры модуля отчета «СформироватьОтчет»
    • «ВыводЗаголовка» - процедура – управляет выводом заголовка, вызывает из модуля отчета процедуру «СформироватьОтчет»

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

    Модуль отчета

    Рассмотрим модуль пользовательского отчета. Наиболее важная процедура модуля отчета «ЗаполнитьНачальныеНастройки», данная процедура вызывается перед открытием формы и содержит команды, которые настраивают список показателей, группировок, отборы и порядок, которые будут присутствовать в отчете:
    • Инициализация переменных:
      «СтруктураПредставлениеПолей» - структура, в которую заносятся представления полей, где ключ – имя показателя/группировки/поля из источника данных, а значение текстовое представление показателя/группировки/поля.
      Пример использования:
      СтруктураПредставлениеПолей.Вставить("ХарактеристикаНоменклатуры ", "Характеристика номенклатуры "); СтруктураПредставлениеПолей.Вставить("ДокументОснование ", "Документ-основание ");
      «МассивОтбора» - массив отбора, массив в который включаем отборы, которые присутствуют в настройках отчета по-умолчанию.
      Пример использования:
      Добавляем два отбора по номенклатуре и складу, эти отборы можно связать с элементами в панели отборов основной формы. При внесении элементов быстрого доступа к отборам на форме отчета, в настройках отчета желательно добавлять имена этих отборов в «МассивОтбора»
      МассивОтбора.Добавить("Номенклатура "); МассивОтбора.Добавить("Склад ");
    • Параметры отчета:
      «ОбщийОтчет.ИмяРегистра» - если отчет формируем на основании определенного регистра, тогда указываем имя этого регистра.
      «ОбщийОтчет.мНазваниеОтчета» - название отчета, которое будет выводится в заголовок табличного документа.
      Пример использования:
      ОбщийОтчет.ИмяРегистра = "ТоварыНаСкладах "; ОбщийОтчет.мНазваниеОтчета = "Анализ доступности товаров на складах ";
    • Запрос для построителя отчета:
      В отчетах предусмотрено формирование текста запроса для построителя на основании трех источников: метаданных регистра, макета и напрямую присваивать текст запроса построителю отчетов.
      - Запроса на основании метаданных регистра
      Если мы указали наименование регистра в «ОбщийОтчет.ИмяРегистра», то вызвав процедуру «ЗаполнитьНачальныеНастройкиПоМетаданнымРегистра» мы можем заполнить настройки построителя запроса и реквизиты общего отчета
      Пример использования:
      Формирует текст запроса к регистру «ТоварыНаСкладах» и заполняет настройками реквизиты общего отчета:
      ОбщийОтчет.ИмяРегистра = "ТоварыНаСкладах "; ЗаполнитьНачальныеНастройкиПоМетаданнымРегистра(СтруктураПредставлениеПолей, МассивОтбора, ОбщийОтчет, "СписокКроссТаблица ");
      - Запроса на основании макета
      Как уже описывалось в разделе «Структура универсальных отчетов», параметры настройки отчета можно указывать в специально разработанном макете. Удобство макета в том что можно регулировать вывод показателей, группировок и полей не прибегая к построению запроса через конструктор.
      Пример использования:
      ПостроительОтчета = ОбщийОтчет.ПостроительОтчета; ЗаполнитьНачальныеНастройкиПоМакету(ПолучитьМакет("ПараметрыОтчетовТоварыОрганизаций "), СтруктураПредставлениеПолей, МассивОтбора, ОбщийОтчет, "СписокКроссТаблица ");
      - Указание запроса как источник данных построителя отчетов
      Использую универсальные отчеты для формирования пользовательских выходных форм, можно составить свой запрос и указать его текст как источник для построителя отчетов. Данный метод очень удобен тем, что можно строить запросы, какой угодно сложности и структуре.
      Пример использования:
      ПостроительОтчета.Текст = "ВЫБРАТЬ | ПродажиОбороты.Номенклатура КАК Номенклатура, | ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот |{ВЫБРАТЬ | Номенклатура.*, | ПродажиОбороты.ХарактеристикаНоменклатуры.* |//СВОЙСТВА |} |ИЗ | РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон,) КАК ПродажиОбороты |//СОЕДИНЕНИЯ |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Номеклатура |//СГРУППИРОВАТЬПО |{ГДЕ | ПродажиОбороты.Номенклатура.*, | ПродажиОбороты.ХарактеристикаНоменклатуры.* |//СВОЙСТВА |//КАТЕГОРИИ |} |{УПОРЯДОЧИТЬ ПО | Номенклатура.*, | ПродажиОбороты.ХарактеристикаНоменклатуры.* |//СВОЙСТВА |} |ИТОГИ | СУММА(СтоимостьОборот) |ПО | ОБЩИЕ, | Номенклатура |{ИТОГИ ПО | ПродажиОбороты.Номенклатура.*, | ПродажиОбороты.ХарактеристикаНоменклатуры.* |//СВОЙСТВА |} "
      При формировании запросов, следует соблюдать несколько правил:
      o В запросе можно указать два предопределенных параметра: «ДатаНач» и «ДатаКон», в которые передается значение соответствующих реквизитов отчета. Данные параметры используются для ограничения выборок из данных по периоду.
      o В отчете всегда должны присутствовать общие итоги: «ИТОГИ … ПО ОБЩИЕ»
      o Для того, чтобы можно было управлять настройками отчета из формы настройки, нужно обязательно указывать соответствующие настройки для построителя отчетов, в фигурных кавычках «{» и «}» или на закладке «Построитель» конструктора запросов.
      o В запросе можно указать специальные директивы: «//СВОЙСТВА», «//КАТЕГОРИИ», «//СОЕДИНЕНИЯ», «//СГРУППИРОВАТЬПО». Далее с помощью процедуры «ДобавитьВТекстСвойстваИКатегории» в запрос добавляются выборки полей свойств, категорий объектов.
      Пример использования:
      В запросе, приведенном выше директивой «//СВОЙСТВА» мы указываем на, то что в текст запроса нужно добавить выборку, группировку и условия по свойствам объектов, «//КАТЕГОРИИ» - добавляем условие по категориям, а с помощью «//СОЕДИНЕНИЯ» мы обеспечиваем соединения с регистром сведений «ЗначенияСвойствОбъектов», «//СГРУППИРОВАТЬПО» - группируем по выбранным свойствам объектов
    • Процедуры заполнения полей построителя отчета:
      После того как был сформирован запрос, нужно заполнить соответствующие реквизиты построителя отчетов и общего отчета.
      В массиве «МассивОтбора» вносим массив отборов, для заполнения отборов в построителе отчетов используем процедуру «ЗаполнитьОтбор».
      Если мы планируем использовать свойства и категории мы должны добавить выполнить процедуру «ДобавитьВТекстСвойстваИКатегории».
      Пример использования:
      ДобавитьВТекстСвойстваИКатегории(ТаблицаПолей, Текст, СтруктураПредставлениеПолей, мСоответствиеНазначений, СтруктураПараметры, ТекстИсточникиСведений="", ТекстПоляКатегорий="", ТекстПоляСвойств="", ТекстПоляСгруппироватьПо = "", ЗаменятьСвойства = "//СВОЙСТВА", ЗаменятьКатегории = "//КАТЕГОРИИ", ЗаменятьСоединения = "//СОЕДИНЕНИЯ", ЗаменятьСгруппироватьПо = "//СГРУППИРОВАТЬПО", ИдентификаторыПараметровДляОтборовПоКатегориям = "") Экспорт
      Для заполнения представлений полей «ЗаполнитьПредставленияПолей», также можно воспользоваться процедурой «ЗаполнитьПредставление».
      Пример использования:
      ЗаполнитьПредставление("Номенклатура ", "Номенклатура ", ИСТИНА, ИСТИНА); ЗаполнитьПредставление("ХарактеристикаНоменклатуры ", "Характеристика номенклатуры ", ЛОЖЬ, ЛОЖЬ);
    • Дополнительные процедуры по настройке отчета:
      «ОчиститьДополнительныеПоляПостроителя» - обязательная процедура, удаляет показатели, группировки из реквизита «ПостроительОтчета.ВыбранныеПоля»
      «ОбщийОтчет.ВыводитьПоказателиВСтроку = Истина» - выводит показатели в строку
      «мСтруктураСвязиПоказателейИИзмерений» - заполнить структуру связи показателей и измерений
      Пример использования:
      Нужно выводить показатель «КоличествоОстаток» только для измерения «Номенклатура» и «ХарактеристаНоменклатуры»:
      ОбщийОтчет.мСтруктураСвязиПоказателейИИзмерений.Вставить("КоличествоОстаток ", Новый Структура(«Номенклатура,ХарактеристикаНоменклатуры»));
      Если нужно выводить все итоги независимо от настройки структуры «мСтруктураСвязиПоказателейИИзмерений» устанавливаем следующий реквизит:
      ОбщийОтчет.ВыводитьИтогиПоВсемУровням = Истина
      Если нужно пропустить некоторые группировки, тогда следуют заполнить структуру «мСтруктураНевыводимыхГруппировок».
      Пример использования:
      Нужно выводить измерения «ХарактеристикаНоменклатуры» вместе с измерением «Номенклатура», для этого добавляем следующий вызов функции
      ОбщийОтчет.мСтруктураНевыводимыхГруппировок.Вставить("Номенклатура ",Новый Структура("ХарактеристикаНоменклатуры "));
      В результате в отчет будет выведены измерения разделенные запятой: «Номенклатура, Характеристика номенклатуры»

    • Другие процедуры модуля пользовательского отчета аналогичны процедурам универсальных отчетов b описанны в разделе «Универсальные отчеты». На что стоит обратить внимание так это на параметры в запросе, перед формированием отчета (процедура «СформироватьОтчет») следует указать эти параметры для построителя отчета:
      Пример использования:
      ПостроительОтчета.Параметры.Вставить(ИмяПараметра,ЗначениеПараметра);

    Заключение

    Использовать ОиО и СКТ для формирования пользовательских выходных форм достаточно просто, если правильно составить в конструкторе запрос и передать его построителю, мы получим готовый отчет. Также, большой плюс использования общих отчетов, это унификация вывода данных на форму отчета, гибкие настройки группировок, отборов и сортировки, представления измерний и показателей.
    Практика показывает, что 90% функционала для формирования любой пользовательской формы реализовано в универсальных отчетах, также можно брать за основу уже готовые типовые отчеты и "дорабатывать" их под требования заказчиков.

    Список ссылок

    Ниже приведем список некоторых ссылок на статьи "Книги знаний" (