XII. Отчет – ВЫБОР ДАННЫХ ИЗ ДВУХ ТАБЛИЦ



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

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

 

1. В режиме Конфигуратор добавим новый объект конфигурации Отчет.Назовем его РейтингУслуг и запустим конструктор схемы компоновки данных (рис. 75а).

Рис. 75а. Основные свойства отчета

 

2. В схеме компоновки данных Добавить набор данных – запрос (рис. 75б) и нажать на кнопку .

Рис. 75б. Добавление набора данных в Схему компоновки данных

 

3. В качестве источника данных для запроса выберем объектную (ссылочную) таблицу НоменклатураУслуг и виртуальную таблицу регистра накопления ВыполненныеУслуги.Обороты (рис. 75в).

Рис. 75в. Конструктор запроса – Выбор таблиц

 

4. Чтобы исключить неоднозначность имен в запросе, переименуем таблицу НоменклатураУслуг в спрНоменклатураУслуг. Для этого выделим ее в списке Таблицы, вызовем ее контекстное меню и выберем пункт Переименовать таблицу (рис. 75г).

Рис. 75г. Переименование таблицы в запросе

 

5. В список полей перенесем поля СпрНоменклатураУслуга.Ссылка и ВыполненныеУслугиОбороты.СтоимостьОборот из этих таблиц (рис. 75д).

Рис. 75д. выбранные поля

 

6. Перейдем на закладку Связи.Так как в запросе теперь участвуют несколько таблиц, требуется определить связь между ними.

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

Необходимо снять флажок Все у таблицы ВыполненныеУслуги.Оборотыи установить его у таблицы спрНоменклатураУслуг(рис. 75е).

Рис. 75е. Установление связи между таблицами

 

Тем самым задаем тип связи как Левое соединение, то есть в результат запроса будут включены все записи справочника НоменклатураУслуги те записи регистраВыполненныеУслуги, которые удовлетворяют условию связи по полю НоменклатураУслуг. Например (рис. 75ж):

Рис. 75ж. связь таблиц в запросе

 

7. Определим Условие отбора записей. На закладке Условия установим отбор, чтобы группы справочника НоменклатураУслуги не попадали в отчет.

Для этого раскроем таблицу спрНоменклатураУслуги, перетащим мышью поле ЭтоГруппа в список условий, установим флажок Произвольное и напишем в поле Условие следующий текст (рис. 75з):

спрНоменклатура.ЭтоГруппа=ЛОЖЬ

 

Рис. 75з. Условие запроса

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

 

Вторым условием должно быть то, что выбранный элемент является услугой. Это –Простое условие. Чтобы его создать, перетащим мышью поле ВидНоменклатурыУслуг в список условий.

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

В дальнейшем перед выполнением запроса передадим в параметр ВидНоменклатурыУслуг значение перечисления –Услуга.

 

Рис. 75и Создание условия запроса

 

8. Обозначим Псевдонимы полей. На закладкеОбъединения/Псевдонимы укажем, что представление элемента справочника (поле Ссылка) будет иметь псевдоним Услуга, а поле регистра будет иметь псевдоним Стоимость (рис. 75к).

Рис. 75к. Установка псевдонимов полей запроса

 

8. Далее определим Порядок записей. На закладкеПорядок укажем, что результат запроса должен быть отсортирован по убыванию значения поля Сумма (рис. 75л).

Рис. 75л. Порядок записей запроса

 

Создание запроса закончено, нажмем кнопку ОК. Вернемся в конструктор схемы компоновки данных.

9. Проанализируем ,сформированный платформой текст запроса:

 

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

При описании источников запроса (после ключевого слова ИЗ) использована возможность определения нескольких источников запроса.

В данном случае выбираются записи из двух источников: СпрНоменклатураУслуга и ВыполненныеУслуги, причем ключевым предложением ЛЕВОЕ СОЕДИНЕНИЕ ... ПО описан способ, которым будут скомбинированы между собой записи этих двух источников.

 

ЛЕВОЕ СОЕДИНЕНИЕ означает, что в результат запроса нужно включить комбинации записей из обоих источников, которые соответствуют указанному после ключевого слова ПО условию. Кроме этого, в результат запроса нужно включить еще и записи из первого (указанного слева от слова СОЕДИНЕНИЕ) источника, для которых не найдено соответствующих условию записей из второго источника.

В части описания запроса есть еще одна новая конструкция –задание условий отбора данных из исходных таблиц.

Условию отбора всегда предшествует ключевое слово ГДЕ. После него описывается само условие. Обратите внимание, что поля исходных таблиц, на которые накладывается условие, могут и не входить в список выборки (как в нашем случае). Кроме того, в нашем условии использован параметр запроса ВидНоменклатурыУслуг (перед именем параметра указывается символ &– амперсанд).

 

Вернемся в конструктор схемы компоновки данных.

 

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

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

 

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

В нашем случае это единственный ресурс Сумма.

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

Рис. 76а. Ресурсы схемы компоновки данных

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

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

 

На этой закладке представлено три параметра: НачалоПериода, КонецПериода и ВидНоменклатурыУслуг.

Почему параметра три, хотя в запросе был задан всего один – ВидНоменклатурыУслуг?

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

Такими параметрами являются НачалоПериода и КонецПериода. Это первые два параметра виртуальной таблицы РегисгрНакопления.ВыполненныеУслуги.Обороты, которая была использована в запросе, в левом соединении.

Следует помнить, что если передается в качестве этих параметров дата (а в нашем случае так и будет), то дата содержит и время с точностью до секунды.

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

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

- по умолчанию время в дате установлено 00:00:00. Поэтому если пользователь задаст период отчета с 01.07.2009 по 14.07.2009, итоги регистра будут рассчитаны с начала дня 01.07.2009 00:00:00 по начало дня 14.07.2009 00:00:00.

 

12. Изменим существующее описание типа для параметра НачалоПериода.

Вернемся на закладку Параметры схемы компоновки данных и дважды щелкнем в ячейке Тип, соответствующей параметру НачалоПериода.

Затем нажмем кнопку выбора  и в нижней части окна редактирования типа данных установим Состав датыв значениеДата. Нажмем ОК(рис. 76б).

Рис. 76б. Редактирование состава даты

13. Еобавим еще один параметр, в который пользователь будет вводить дату окончания. А значение параметра КонецПериода будем рассчитывать автоматически таким образом, чтобы оно указывало на конец дня даты, введенной пользователем.

Поэтому для параметра КонецПериода установим флажок Ограничение доступности (рис. 76в).

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

Рис. 76в. Ограничение доступности для параметра Конец периода

 

14. Далее с помощью кнопки Добавить в командной панели добавим новый параметр с именем ДатаОкончания. Для этого параметра платформа автоматически сформирует заголовок – Дата окончания. Оставим его без изменений. Тип значения параметра –Дата. Как и для параметра Начало Периода, укажем состав даты –Дата. А также для параметра НачалоПериода зададим заголовок, который будет отображаться пользователю, –Дата начала. По умолчанию добавленный нами параметр доступен для пользователя (ограничение доступности в колонке снято) (рис. 76г)

Рис. 76г. Добавления параметра Дота окончания

 

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

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

В нем есть функция КонецПериода(), которая позволяет получить дату, соответствующую концу какого-либо периода, например, указанного дня.

В ячейке Выражение зададим для параметра КонецПериода следующее выражение (рис. 76д):

КонецПериода(&ДатаОкончания,"День")

 

Рис. 76д. Параметры системы компоновки

 

15. Настроим параметр ВидНоменклатурыУслуг.Поскольку отчет должен отображать суммы, на которую были оказаны услуги, значение параметра ВидНоменклатурыУслуг пользователь изменять не должен. Оно должно быть задано непосредственно в схеме компоновки как, например, Перечисление.ВидыНоменклатурыУслуг.УслугаВЦеху (таким образом будут проанализированные услуги, оказываемые в цехах).

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

Воспользуемся кнопкой выбора  и выберем это значение из списка перечисления видов номенклатуры (рис. 76е).

Рис. 76е. Установка значения параметра «ВидНоменклатурыУслуг»

 

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

Рис. 76ж. Добавление группировки в отчет

 

На закладке Выбранные поля укажем поля Услуга и Стоимость (рис. 76з).

Рис. 76з. Структура отчета Рейтинг услуг

 

Затем перейдем на закладку Другие настройки и зададим заголовок отчетаРейтинг услуг (рис. 76и).

Рис. 76и. Установка заголовка отчета

 

17. Зададим Быстрые пользовательские настройки. Т.е. предоставимпользователю возможность задавать отчетный период перед формированием отчета. То есть параметры Дата начала и Дата окончания включим в состав пользовательских настроек.

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

 

На закладке Параметры (рис. 77а) выделим по очереди каждый из параметров и нажмем кнопку Свойства элемента пользовательских настроек, расположенную в правом нижнем углу окна настроек.

Установим флажок Включать в пользовательские настройки(рис. 77б) и оставим предложенное по умолчанию для свойства Режим редактирования значение Быстрый доступ.

Флажок Включать в пользовательские настройкиозначает, что эта настройка будет доступна пользователю в отдельном окне при нажатии кнопки Настройка (то есть такая настройка, которой он может пользоваться, но не очень часто.

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

Рис. 77а. Закладка Параметры отчета

 

Рис. 77б. Установка параметров Пользовательских настроек элементов

 

18. Определим, в каких подсистемах будет отображаться отчет (рис. 77в)

Рис. 77в. Подсистемы, в которых отображается отчет

 

Проверим в работе выполненные выше действия, запустим приложение в режиме 1С: Предприятие.

 

ВВОД ДАННЫХ В БД

Сформируем отчет Рейтинг услуг.

1. Через форму отчета, автоматически сформированную системой, сформируйте отчет по тем параметрам, которые изначально создавались .

 

2. Измените дату окончания или дату начала и сформируем отчет (рис. 77г).

Рис. 77г. Отчет Рейтинг услуг


Дата добавления: 2018-04-15; просмотров: 615; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!