Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания 1С8.0_Продол_3.doc
Скачиваний:
9
Добавлен:
01.03.2016
Размер:
1.46 Mб
Скачать

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

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

Создадим новый объект конфигурации Отчет «РейтингУслуг». Перейдем на закладку «Макеты» и вызовем конструктор выходной формы.

Выберем объектную (ссылочную) таблицу справочника «Номенклатура» и виртуальную таблицу регистра накопления «Продажи.Обороты». Для того чтобы исключить неоднозначность имен в запросе, переименуем таблицу «Номенклатура» в «СпрНоменклатура» (контекстное меню правой кнопки мыши).

Затем установим курсор на таблицу «ПродажиОбороты» и вызовем диалог ввода параметров виртуальной таблицы:

Откроем диалог ввода параметров виртуальной таблицы

Укажем, что начало и конец периода будут переданы в соответствующих параметрах «ДатаНачала» и «ДатаОкончания» (символ «&» перед именем указывает, что это параметр запроса):

Затем выберем из таблиц поля «СпрНоменклатура.Ссылка» и «ПродажиОбороты.ВыручкаОборот»:

- СпрНоменклатура.Ссылка

- СпрНоменклатура.Представление

- ПродажиОборотыВыручкаОборот

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

Единственное, что нам останется сделать, это сбросить флаг «Все» у таблицы регистра и установить его у таблицы справочника.

Будем выбирать все элементы из справочника «Номенклатура»

Установка флага «Все» у таблицы справочника будет означать, что из справочника будут выбраны все элементы и этим элементам будет поставлено в соответствие значение оборота выручки из регистра. Таким образом, в результате запроса будут присутствовать все услуги, и для некоторых из них будут указаны обороты выручки. Для тех услуг, которые не оказывались в выбранном периоде, не будет указано ничего.

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

Вторым условием должно быть то, что выбранный элемент является услугой (это - «Простое условие»):

В дальнейшем, перед выполнением запроса, мы передадим в параметр «ВидНоменклатуры» - соответствующее значение перечисления.

Перейдем на закладку «Объединения/Псевдонимы» и укажем, что представление элемента справочника будет иметь псевдоним «Услуга», а поле регистра будет иметь псевдоним «Выручка»:

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

На закладке «Итоги» определим, что нужно выводить общие итоги, и они должны представлять собой сумму значений поля «Выручка»:

На закладке «Отчет» сбросим флаг «Использовать построитель отчета».

Теперь перейдем на закладку «Выходная форма». Укажем, что параметры «ДатаОкончания» и «ДатаНачала» будут редактироваться в форме в полях ввода с типом «Дата». Для параметра «ВидНоменклатуры» мы наоборот снимем признак редактирования в форме:

Нажмем «ОК». Платформа сформирует макет и форму отчета Откроем модуль формы и найдем в нем процедуру «РейтингУслуг».

В этой процедуре, в той части, где выполняется установка параметров запроса, определим значение параметра «ВидНоменклатуры» (исправления выделены жирным шрифтом):

Запрос.Текст =

"ВЫБРАТЬ

| СпрНоменклатура.Ссылка КАК Услуга,

| СпрНоменклатура.Представление КАК Представление,

| ПродажиОбороты.ВыручкаОборот КАК Выручка

|И3

| Справочник.Номенклатура КАК СпрНоменклатура

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи,Обороты(&ДатаНачала,

| &ДатаОкончания,,)

| КАК ПродажиОбороты

| ПО ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка

ГДЕ

| (СпрНоменклатура.ЭтоГруппа = Ложь) И

| СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

|УПОРЯДОЧИТЬ ПО | ВыручкаУБЫВ

|ИТОГИ СУММА(Выручка) ПО | ОБЩИЕ";

ЗапросУстановитьПараметрС'ВидНоменклатуры",