Для визуального конструирования отчетов с использованием системы компоновки данных предназначен объект конфигурации Отчет. Выделим в дереве объектов конфигурации ветвь Отчеты и добавим новый отчет.
В появившемся окне редактирования назовем отчет ОстаткиНоменклатуры и создадим схему компоновки данных отчета, нажав кнопку Открыть схему компоновки данных или кнопку открытия со значком лупы (рис. 2.2).
Рис. 2.2. Окно редактирования объекта конфигурации «Отчет»
Так как у нашего отчета еще нет схемы компоновки данных, платформа предложит создать новую схему и откроет конструктор макета. В открывшемся окне конструктора макета будет доступен для выбора единственный тип макета – Схема компоновки данных (рис. 2.3).
Рис. 2.3. Конструктор макета
Нажмем кнопку Готово. Платформа создаст макет отчета, содержащий схему компоновки данных, которая в дальнейшем будет доступна на закладке свойств отчета Макеты наряду с другими макетами отчета.
Затем конструктор макета откроет окно конструктора схемы компоновки данных. В нем происходит основная работа по визуальному конструированию отчета. Для этого конструктор предоставляет массу разнообразных возможностей. Но мы пока рассмотрим лишь те из них, которые понадобятся в нашем отчете. Остальные возможности по мере усложнения будут представлены в других примерах.
Любой отчет основывается на данных, извлекаемых из каких-либо источников по определенным условиям и параметрам. Мы рассмотрим наиболее простой случай, когда используется один набор данных. Он будет содержать запрос к базе данных, сформулированный на специальном языке – языке запросов.
Итак, на закладке Наборы данных добавим новый набор данных – запрос (рис. 2.4).
Рис. 2.4. Добавление набора данных в окне конструктора схемы компоновки данных
В правом нижнем окне конструктора схемы компоновки данных мы можем создавать и редактировать текст запроса. Текст запроса можно написать вручную, но гораздо проще сделать это с помощью конструктора запроса, нажав кнопку Конструктор запроса (рис. 2.5).
Рис. 2.5. Вызов конструктора запроса
Конструктор запроса позволяет визуально конструировать запрос. Даже пользователь, не знакомый с языком запросов, может с помощью конструктора создать синтаксически правильный запрос.
Мы пока рассмотрим лишь основную закладку конструктора Таблицы и поля. Остальные возможности по мере усложнения будут представлены в других примерах. Сначала в списке База данных нам нужно выбрать таблицы, с которыми будет работать запрос. Раскроем ветку Регистры накопления, здесь мы видим объектную таблицу ОстаткиНоменклатуры, в которой накапливаются данные об остатках номенклатуры. Ниже находятся несколько виртуальных таблиц, созданных платформой. Так как в нашем отчете будут отражаться как остатки, так и данные о приходе и расходе номенклатуры, то очевидно нам нужна таблица ОстаткиНоменклатуры.ОстаткиИОбороты. Выделим ее.
ПРИМЕЧАНИЕ
Выделенные элементы можно перенести из одного списка в другой перетаскиванием мышью или двойным щелчком на них. Либо можно использовать кнопки ,
,
,
.
Перенесем выделенную таблицу в список Таблицы. Раскроем ее. Здесь отобразятся все доступные для выбора поля этой таблицы. Затем перенесем в список Поля нужные нам в отчете поля таблицы:
Итак, в результате наших действий окно конструктора запроса примет вид (рис. 2.6).
Рис. 2.6. Выбор данных для запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных (рис. 2.7).
Рис. 2.7. Конструктор схемы компоновки данных
Итак, мы добавили набор данных – запрос и создали текст запроса, выбирающего данные из информационной базы «1С:Предприятия». Текст запроса отображается в поле Запрос. Здесь его можно вручную отредактировать или снова вызвать Конструктор запроса для внесения в него изменений. Так как свойство Автозаполнение включено, платформа автоматически заполнила список доступных полей текущего набора данных исходя из запроса ().
Пока мы не будем рассматривать другие возможности конструктора схемы компоновки данных, а приступим к настройке отчета, то есть к формированию его структуры и внешнего вида.
Представим наш отчет в виде таблицы, где по строкам данные группируются по позициям номенклатуры, а в колонках – по позициям складов. Групповые итоговые данные – , например остаток конкретного товара на конкретном складе, выводятся в ячейках таблицы. Поэтому для того, чтобы увидеть какие-либо значения в таблице, мы должны определить ресурсы схемы компоновки данных.
ВНИМАНИЕ
Для всех отчетов, где выводятся итоговые данные по каким-либо группировкам, нужно определить поля ресурсов отчета! Итоговые данные формируются на закладке Ресурсы.
На закладке Ресурсы схемы компоновки данных в списке Доступные поля расположены все поля из текущего набора данных отчета. Нажмем кнопку , чтобы конструктор выбрал все доступные ресурсы, по которым можно вычислять итоги (рис. 2.8).
Рис. 2.8. Выбор ресурсов отчета
ПРИМЕЧАНИЕ
Поля в список ресурсов можно перенести из списка доступных полей перетаскиванием мышью или двойным щелчком на них. Либо можно использовать кнопки ,
,
,
.
В колонке Выражение здесь содержится выражение, по которому будет вычисляться значение ресурса. По умолчанию предлагается функция Сумма, но доступны и другие распространенные функции агрегирования данных (см. рис. 2.8).
Теперь перейдем на закладку Настройки и создадим стандартные настройки, определяющие, как будет выводиться информация в отчет.
Напомним, что иерархическая структура отчета содержит три основных элемента:
Выделим корневой элемент Отчет и добавим в него новую таблицу. Для этого нужно нажать кнопку Добавить, расположенную в командной панели окна, или правой кнопкой мыши вызвать контекстное меню элемента Отчет (рис. 2.9).
Рис. 2.9. Добавление новой таблицы в отчет
В структуре отчета появится элемент Таблица, включающий в себя Строки и Колонки. Выделим элемент Строки и нажмем кнопку Добавить в командной панели или клавишу Ins для добавления новой группировки. В появившемся окне выбора поля группировки выберем поле Номенклатура (рис. 2.10).
Рис. 2.10. Окно выбора группировки
ПРИМЕЧАНИЕ
Для выбора поля группировки следует нажать кнопку выбора в строке Поле и выбрать нужное поле из списка доступных полей. Также можно использовать механизм «ввод по строке» и ввести в строку Поле первые буквы имени поля, а платформа выполнит автоподстановку.
Аналогичным образом в колонки таблицы добавим группировку по полю Склад. Таким образом мы указали, что в строках таблицы данные будут группироваться по позициям номенклатуры, а в колонках – по позициям складов.
На закладке Выбранные поля перенесем мышью из списка доступных полей поля, которые будут выводиться в отчет:
ПРИМЕЧАНИЕ
Добавление доступных полей в список выбранных полей можно осуществить перетаскиванием мышью, двойным щелчком на доступных полях либо нажатием кнопки Добавить справа от списка выбранных полей. Порядок выбранных полей можно изменить позже кнопками Вверх, Вниз или перетаскиванием мышью.
Поля Номенклатура и Склад можно не переносить. Они все равно будут выводиться в отчет в составе автополей группировок ().
В результате окно настроек отчета должно принять вид (рис. 2.11).
Рис. 2.11. Окно настроек отчета
Запустим отчет на исполнение в режиме 1С:Предприятие. Нажмем кнопку Сформировать. Отчет примет следующий вид (рис. 2.12).
Рис. 2.12. Результат отчета
Мы видим, что данные в отчете представлены в виде таблицы, строки которой сгруппированы по номенклатуре, а колонки – по складам, а также выведены общие итоги по вертикали и горизонтали.
Заметьте, что при прокручивании отчета вниз и вправо положение шапки отчета и самой левой колонки остается зафиксированным. Для удобства пользователя платформа автоматически фиксирует табличный документ, в который выводится результат отчета, когда в отчет выводится одна таблица (ФиксацияСлева и ФиксацияСверху) или одна группировка (ФиксацияСверху).
Таким образом, мы быстро и легко создали простой отчет Остатки номенклатуры, представив данные в виде таблицы. На этом примере мы научились создавать и настраивать схему компоновки данных для нового отчета и рассмотрели следующие ее возможности: