Опубликован: 14.07.2011 | Уровень: специалист | Доступ: платный
Лекция 6:

Система компоновки данных

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Аннотация: В этой лекции рассматривается разработка отчетов и печатных форм документов с использованием системы компоновки данных.

Цель лекции: освоить основные приемы интерактивной и программной работы с системой компоновки данных

6.1. Постановка задачи

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

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

Подобные отчеты все еще можно встретить в тиражных конфигурациях, но им на смену приходят отчеты, в основе которых лежит система компоновки данных (СКД). С точки зрения пользователя, точнее, достаточно опытного пользователя, который, возможно, знаком с основами конфигурирования 1С:Предприятие 8, такой отчет предоставляет несравненно более широкие возможности. Например, пользователь может самостоятельно, без необходимости пользоваться Конфигуратором, настроить множество параметров вывода отчета, представить исходные данные, лежащие в основе отчета, в том виде, в котором ему нужно - от простого необработанного списка, до таблиц с группировками или графических диаграмм различных видов.

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

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

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

В этой лекции мы рассмотрим возможности СКД на нескольких примерах:

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

6.2. Автоматическое построение отчета с помощью СКД

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

  • Номенклатурные позиции;
  • Центры материальной ответственности или склады;
  • Информация о начальных и конечных остатках материалов, а так же о приходе и расходе материалов за период, заданный пользователем.

Приступим к решению этой задачи, начав с создания нового объекта конфигурации Отчет ; назовем его МатериалыСКД рис. 6.1.

Создание нового отчета на основе системы компоновки данных

Рис. 6.1. Создание нового отчета на основе системы компоновки данных

На вкладке отчета Основные нажмем на значок увеличительного стекла около поля Основная схема компоновки данных. Появится окно Конструктора макета, где в качестве типа макета доступен лишь один - Схема компоновки данных. Не будем менять имя макета ОсновнаяСхемаКомпоновкиДанных и нажмем Готово. В составе макетов, подчиненных отчету, появится новый макет - ОсновнаяСхемаКомпоновкиДанных, будет открыто окно конструктора СКД, рис. 6.2.

Новый макет и окно конструктора СКД

увеличить изображение
Рис. 6.2. Новый макет и окно конструктора СКД

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

В левой части окна, в меню кнопки Добавить набор данных выберем Добавить набор данных - запрос, рис. 6.3.

Добавление нового набора данных

Рис. 6.3. Добавление нового набора данных

В левой части окна появится новый набор данных, окно изменится - в частности, в его нижней правой части появится окно для ввода запроса ( рис. 6.4). Текст запроса можно составить вручную и ввести в это поле, а можно воспользоваться уже знакомым вам по предыдущим занятиям Конструктором запроса, нажав соответствующую кнопку около поля.

Новый набор данных в окне конструктора СКД

увеличить изображение
Рис. 6.4. Новый набор данных в окне конструктора СКД

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

  • Номенклатура
  • ЦентрОтветственности
  • СуммаНачальныйОстаток
  • СуммаПриход
  • СуммаРасход
  • СуммаКонечныйОстаток

Добавим эти поля в раздел Поля вкладки Таблицы и поля окна конструктора запроса, рис. 6.5.

Конструирование запроса

увеличить изображение
Рис. 6.5. Конструирование запроса

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

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

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

Выбор ресурсов

увеличить изображение
Рис. 6.6. Выбор ресурсов

Теперь приступим к оформлению отчета. Перейдем на вкладку Настройки, рис. 6.7.

Настройка внешнего вида отчета

увеличить изображение
Рис. 6.7. Настройка внешнего вида отчета

Здесь мы собираемся добавить в отчет новую таблицу, данные в которой по строкам будут сгруппированы по номенклатуре, а по столбцам - по центрам ответственности. Для этого воспользуемся Конструктором настроек, вызвать который можно, нажав соответствующую кнопку в правой части окна. Работа с Конструктором настроек компоновки данных, как и с другими конструкторами, заключается в пошаговой настройке параметров будущего отчета, на рис. 6.8 вы можете видеть первое окно конструктора.

Первое окно Конструктора настроек

Рис. 6.8. Первое окно Конструктора настроек

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

Мы выберем тип отчета Таблица и нажмем на кнопку Далее. Появится окно для настройки состава полей, отображаемых в отчете ( рис. 6.9). Выберем из списка в левой части отчета все поля, которые должны присутствовать в отчете, при необходимости, с помощью кнопок со стрелками, направленными вверх и вниз (они находятся в правой части окна), поменяем порядок полей таким образом, чтобы поля-ресурсы располагались в таком порядке:

  • СуммаНачальныйОстаток
  • СуммаПриход
  • СуммаРасход
  • СуммаКонечныйОстаток
Второе окно Конструктора настроек

Рис. 6.9. Второе окно Конструктора настроек

В очередной раз нажмем Далее, отобразится окно, в котором нам предлагают определить поля, по которым будут сгруппированы таблицы, строки и колонки отчета. В нашем случае для группировки доступны два поля - Номенклатура и ЦентрОтветственности. С помощью кнопки со стрелкой, направленной вправо, находящейся между списками Доступные поля и Строки, перенесем в список Строки поле Номенклатура. Аналогичное действие выполним для поля ЦентрОтветственности и списка Колонки, рис. 6.10.

Третье окно Конструктора настроек

Рис. 6.10. Третье окно Конструктора настроек

Нажмем кнопку Далее. Следующее окно позволяет настроить упорядочивание данных. Упорядочим таблицу по полю Номенклатура, по возрастанию, рис. 6.11.

Четвертое окно Конструктора настроек

Рис. 6.11. Четвертое окно Конструктора настроек
< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Евгений Орлов
Евгений Орлов
Кундуз Сабаева
Кундуз Сабаева

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.НачислениеЗарплаты.МодульОбъекта(45)}: Деление на 0
        Движение.Результат= Движение.ИсходныеДанные*Факт[0].РабочийДень/План[0].РабочийДень;

Андрей Нейман
Андрей Нейман
Россия
Илья Климов
Илья Климов
Россия, Пермь, ПНИПУ, 2013