рейтинг услуг 1с отчет
Лабораторная работа 10.2
1. Отчет «Рейтинг услуг» будет содержать информацию о том, выполнение каких услуг принесло наибольший доход в указанном периоде.
2. Добавьте отчет РейтингУслуг. В схему компоновки данных добавьте новый Набор данных – запрос и вызовете конструктор запроса.
3. Источники данных: объектная таблица Номенклатура и виртуальная таблица регистра накопления Продажи.Обороты. Чтобы исключить неоднозначность имен в запросе, через контекстное меню переименуйте таблицу Номенклатура в спрНоменклатура. В список полей перенесите поля СпрНоменклатура.Ссылка и ПродажиОбороты.ВыручкаОборот (рис. 14.8).
4. Перейдите на закладку Связи. Там уже будет создана связь по полю Номенклатура. Т.е. значение измерения Номенклатура регистра Продажи должно быть равно ссылке на элемент справочника Номенклатура. Но нам нужно снять флажок В…(Все) у таблицы ПродажиОбороты и установить его у таблицы спрНоменклатура. Этим задается тип связи Левое соединение, т.е. в результат запроса будут включены все записи справочника Номенклатура и те записи регистра Продажи, которые удовлетворяют условию связи по полю Номенклатура (рис. 14.9). Таким образом, в результате запроса могут быть услуги с нулевой выручкой.
5. Перейдите на закладку Условия. Надо установить отбор, чтобы группы справочника Номенклатура не попадали в отчет. Для этого раскройте таблицу спрНоменклатура, перетащите мышью поле ЭтоГруппа в список условий, установите флажок П… (Произвольное) и напишите в поле Условие следующий текст: спрНоменклатура.ЭтоГруппа=ЛОЖЬ. Вторым условием должно быть то, что выбранный элемент является услугой. Это – Простое условие. Чтобы его создать, перетащите поле ВидНоменклатуры в список условий. Автоматически сформируется условие, согласно которому вид номенклатуры должен быть равен значению параметра ВидНоменклатуры (рис. 14.10). В дальнейшем перед выполнением запроса в параметр ВидНоменклатуры будет передаваться значение перечисления – Услуга.
6. На закладке Объединения/Псевдонимы укажите, что представление элемента справочника (поле Ссылка) будет иметь псевдоним Услуга, а поле регистра будет иметь псевдоним Выручка.
7. На закладке Порядок укажите, что результат запроса должен быть отсортирован по Убыванию значения поля Выручка. Нажмите ОК и выйдите из конструктора запроса. В итоге должен сформироваться следующий текст запроса (рис. 14.11):
Проанализируйте этот запрос.
8. Под ресурсами в системе компоновки данных подразумеваются поля, значения которых рассчитываются на основании детальных записей, входящих в группировку. По сути, ресурсы являются групповыми или общими итогами отчета. В схеме компоновки данных перейдите на закладку Ресурсы, выберите поле Выручка. Платформа автоматически предложит рассчитывать сумму значений этого поля, что нам и нужно (рис. 14.12)
9. Параметры отчета задают условия отбора записей в отчет. Перейдите на закладку Параметры. У параметра НачалоПериода измените заголовок на Дата начала, измените состав типа Дата на Дату вместо Дата и время. У параметра КонецПериода установите флажок О…(Ограничение доступности). Добавьте новый параметр ДатаОкончания, тип – Дата, состав даты – Дата. Для параметра КонецПериода в графу Выражение занесите следующее выражение КонецПериода(&ДатаОкончания, “День”). (Функция языка выражений системы компоновки данных КонецПериода позволяет получить дату, соответствующую концу какого-либо периода, например, указанного дня). Для параметра ВидНоменклатуры установите значение Перечисление.ВидыНоменклатуры.Услуга (Рис. 14.13).
10. Перейдите на закладку Настройки. Добавьте Новую группировку без указания поля группировки. На закладке Выбранные поля укажите поля Услуга и Выручка. На закладке Другие настройки задайте заголовок отчета – Рейтинг услуг.
11. Пользователю должна быть предоставлена возможность непосредственно в форме отчета задавать отчетный период. Для этого на закладке Параметры установите значения параметра Дата начала – Начало этого месяца, параметра Дата окончания – Начало этого дня. Для каждого из этих параметров нажмите кнопку Свойства элемента пользовательских настроек и в появившемся окне установите флажок Включать в пользовательские настройки (рис. 14.14).
12. Закройте конструктор схемы компоновки данных и перейдите на закладку Подсистемы, отметьте там подсистемы ОказаниеУслуг и Бухгалтерия.
13. В режиме «1С: Предприятие» получите созданный отчет (рис.14.15). Обратите внимание, что в отчет попала и та услуга, которая ни разу не оказывалась (Демонтаж). Измените отчетный период и получите ещё один отчет.
14. Самостоятельно создайте и получите аналогичный отчет Рейтинг клиентов. Вид такого отчета приведен на рис. 14.16.
Настройки в конфигураторе и в режиме 1С:Предприятие
Лабораторная работа № 13
Отчеты. Выбор данных из двух таблиц.
ЗАДАНИЕ
Создание отчета Рейтинг услуг
1. Добавьте в конфигураторе объект конфигурации Отчет.
2. На закладке Основные укажите: имя отчета – РейтингУслуг.
3. Создайте схему компоновки данных для отчета, нажмите кнопку Открыть схему компоновки данных.
4. В конструкторе схемы компоновки данных создайте Набор данных – запрос. После чего нажмите кнопку Конструктор запроса, в качестве источника данных для запроса выберите объектную таблицу Номенклатура и виртуальную таблицу регистра накопления Продажи.Обороты. Выберите все поля этих таблиц.
Рис. 13.1. Переименование таблицы
6. На закладке Связи: снимите флажок Все у таблицы ПродажиОбороты и установить его у таблицы спрНоменклатура
7. На закладке Условия: раскройте таблицу спрНоменклатура, перетащите мышью поле ЭтоГруппа в список условий, установите флажок Произвольное и напишите в поле Условие следующий код:
8. Перетащите мышью второе поле ВидНоменклатуры в список условий, не устанавливайте флажок Произвольное:
Рис. 13.2 Листинг условия запроса
9. На закладке Объединения/Псевдонимы: укажите псевдоним представления элемента справочника как Услуга, а псевдоним поля регистра как Выручка
Рис. 13.4. Установка псевдонимов полей запроса
10. На закладке Порядок: укажите сортировку значения поля Выручка по убыванию:
Рис. 13.5. Порядок записей запроса
После чего закончите создание запроса нажатием кнопки ОК. Вернитесь в конструктор схемы компоновки данных и проверьте сформированный запрос:
Рис. 13.6. Запрос, сформированный конструктором запроса
Ресурсы
Под ресурсами в системе компоновки данных подразумеваются поля, значения которых рассчитываются на основании детальных записей, входящих в группировку. По сути, ресурсы являются групповыми или общими итогами отчета.
11. На закладке Ресурсы: нажмите кнопку », чтобы конструктор выбрал все доступные ресурсы, по которым можно вычислять итоги. В данном случае это единственный ресурс Выручка. Платформа автоматически предложит рассчитывать сумму значений этого поля.
Параметры
Пользователя, как правило, интересуют данные о хозяйственной деятельности за определенный период. Поэтому практически в любом отчете используются параметры, задающие начало и конец отчетного периода.
12. Перейдите на закладку Параметры. На этой закладке три параметра: НачалоПериода, КонецПериода и ВидНоменклатуры. Система компоновки данных самостоятельно анализирует текст запроса и помимо тех параметров, которые указаны в нем в явном виде (ВидНоменклатуры), предоставляет возможность настроить также и параметры виртуальных таблиц, которые участвуют в запросе.
Такими параметрами являются НачалоПериода и КонецПериода. Это первые два параметра виртуальной таблицы РегистрНакопления.Продажи.Обороты, которую использовали в запросе, в левом соединении.
Если в конструкторе запроса выделить в списке таблиц эту таблицу и нажать кнопку Параметры виртуальной таблицы, то появится диалог, где мы увидим параметры НачалоПериода и КонецПериода
Первым параметром передается начало периода расчета итогов, вторым – конец периода. В результате исходная таблица будет содержать только обороты, рассчитанные в переданном периоде.
Заметьте, что если передать в качестве этих параметров дату, то дата содержит и время с точностью до секунды.
Допустим, заранее известно, что пользователя не будут интересовать результаты работы отчета в периодах, указанных с точностью до секунды. В этом случае следует учесть две особенности. Во-первых, пользователя нужно избавить от необходимости указывать время при вводе даты периода, за который формируется отчет. Для этого измените существующее описание типа для параметра НачалоПериода.
13. Дважды щелкните в ячейке Тип, соответствующей параметру НачалоПериода. Затем нажмите кнопку выбора установите Состав даты в значение Дата.
Рис. 13.7. Изменение типа даты
14. Вторая особенность заключается в том, что по умолчанию время в дате установлено 00:00:00. Поэтому если пользователь задаст период отчета с 01.06.2018 по 11.06.2018, итоги регистра будут рассчитаны с начала дня 01.06.2018 00:00:00 по начало дня 11.06.2018, 00:00:00. Таким образом, данные за 11-е число, отличные от начала дня, в расчет не войдут, что сильно удивит пользователя. Для того чтобы исключить эту ситуацию, добавьте еще один параметр ДатаОкончания, в который пользователь будет вводить дату окончания.
15. Значение параметра КонецПериода рассчитайте автоматически таким образом, чтобы оно указывало на конец дня даты, введенной пользователем. Поэтому для параметра КонецПериода установите флажок Ограничение доступности
Если этот флажок не установлен, то параметр будет доступен для настройки пользователем. Если же установить этот флажок, то пользователь не увидит этот параметр.
16. С помощью кнопки Добавить в командной панели добавьте новый параметр с именем ДатаОкончания. Для этого параметра платформа автоматически сформирует заголовок – Дата окончания. Оставьте его без изменений. Задайте тип значения параметра – Дата. При этом, как и для параметра НачалоПериода, укажите состав даты – Дата. А также для параметра НачалоПериода задайте заголовок, который будет отображаться пользователю, – Дата начала.
17. Перейдите к параметру КонецПериода. Чтобы задать формулу, по которой будет вычисляться значение параметра КонецПериода, воспользуйтесь языком выражений системы компоновки данных.
В нем есть функция КонецПериода(), которая позволяет получить дату, соответствующую концу какого-либо периода, например, указанного дня.
В ячейке Выражение задайте для параметра КонецПериода следующее выражение:
18. Поскольку отчет должен отображать выручку, полученную только от реализации услуг, значение параметра ВидНоменклатуры пользователь изменять не должен. Оно должно быть задано непосредственно в схеме компоновки как Перечисление.ВидыНоменклатуры.Услуга.
Флажок Ограничение доступности у параметра ВидНоменклатуры платформа установила по умолчанию, поэтому остается только указать нужное значение перечисления ВидыНоменклатуры в ячейке Значение, соответствующей параметру ВидНоменклатуры. Воспользуйтесь кнопкой выбора … и выберите это значение из списка перечисления видов номенклатуры – Услуга
Рис. 13.8 Настройка параметров отчета
Настройки
19. Перейдите к формированию структуры отчета. — На закладке Настройки: добавьте группировку и не указывайте поле группировки. На закладке Выбранные поля укажите поля Услуга и Выручка.
Рис. 13.9 Структура отчета «РейтингУслуг»
Рис. 13.10 Установка заголовка отчета
21. На подзакладке Параметры выделите по очереди каждый из параметров и нажмите кнопку Свойства элемента пользовательских настроек, расположенную в правом нижнем углу окна настроек (или контекстное меню). Установите флажок Включать в пользовательские настройки и оставьте предложенное по умолчанию для свойства Режим редактирования значение Быстрый доступ.
22. Закройте конструктор схемы компоновки данных и в окне редактирования объекта конфигурации Отчет РейтингУслуг перейдите на закладку Подсистемы. Отметьте в списке подсистем: Оказание услуг и Бухгалтерия.
Рис. 13.11 Определение пользовательских настроек
23. Запустите 1С: Предприятие в режиме отладки и посмотрите, как работает отчет. В открывшемся окне 1С:Предприятия в панели действий разделов Оказание услуг и Бухгалтерия в группе команд для выполнения отчетов появилась команда для формирования отчета Рейтинг услуг. Выполните эту команду. Откроется форма отчета, автоматически сформированная системой. В окне отчета видно параметры, определяющие отчетный период. Он по умолчанию не задан. Но можно при желании изменить его, воспользовавшись кнопкой календаря. Сформируйте отчет с начала года по сегодняшний день. Нажмите кнопку Сформировать:
Настройки в конфигураторе и в режиме 1С:Предприятие
Рис. 13.13 Выбор вариантов отчета из пользовательских настроек
Условное оформление
В таком отчете, как Рейтинг услуг, было бы удобно выделять цветом записи отчета, содержащие услуги с наименьшей или с наибольшей выручкой, или еще по какому-либо условию.
25. Вернитесь в конфигуратор и откройте схему компоновки данных отчета Рейтинг услуг на закладку Настройки: перейдите на закладку Условное оформление и нажмите кнопку Добавить. В пункте Оформление, нажмите кнопку выбора, после чего в поле установите нужный цвет текста.
Рис. 13.14 Настройка условного оформления
Рис. 13.15 Настройка условного оформления
27. В поле Оформляемые поля: и в появившемся окне, нажимая кнопку, Добавить, можно выбрать поля Услуга и Выручка.
Пользовательские настройки
На закладке Настройки схемы компоновки данных, отчета Рейтинг услуг, содержатся полные настройки отчета, которые задает разработчик. Часть из них может быть представлена пользователю для создания произвольного отбора, условного оформления отчета и пр.
30. Нажмите кнопку Свойства элемента пользовательских настроек, расположенную вверху в командной панели окна настроек. Установим признак использования для настроек Отбор и Условное оформление и установите для них свойство Режим редактирования в значение Обычный. Тем самым включились настройки отбора и условного оформления в состав пользовательских настроек и предоставили пользователю возможность задавать их в отдельном окне, вызываемом кнопкой Настройка.
Рис. 13.16 Состав пользовательских настроек
Дата добавления: 2019-07-15 ; просмотров: 333 ; Мы поможем в написании вашей работы!
2.10.1.2 Отчет «Рейтинг услуг»
Отчет «Рейтинг услуг» будет содержать информацию о том, выполнение каких услуг принесло предприятию наибольшую прибыль в указанном периоде. На примере отчета «Рейтинг услуг» мы проиллюстрируем, как отбирать данные в некотором периоде, как задавать параметры запроса, и как использовать в запросе данные из нескольких таблиц и включать в результат запроса все данные одного из источников. Создадим новый объект конфигурации «Отчет «РейтингУслуг»».
Перейдем на закладку «Макеты» и вызовем конструктор выходной формы.
Выберем объектную (ссылочную) таблицу справочника «Номенклатура» и виртуальную таблицу регистра накопления «Продажи.Обороты». Для того чтобы исключить неоднозначность имен в запросе, переименуем таблицу «Номенклатура» в «СпрНоменклатура» (контекстное меню правой кнопки мыши).
Затем установим курсор на таблицу «ПродажиОбороты» и вызовем из контекстного меню пункт «Параметры виртуальной таблицы». В ответ откроется диалог ввода параметров виртуальной таблицы.
Укажем, что начало и конец периода будут переданы в соответствующих параметрах «ДатаНачала» и «ДатаОкончания» (символ «&» перед именем указывает, что это параметр запроса):
Затем выберем из таблиц поля «СпрНоменклатура.Ссылка» и «ПродажиОбороты.ВыручкаОборот»:
Установка флага «Все» у таблицы справочника будет означать, что из справочника будут выбраны все элементы и этим элементам будет поставлено в соответствие значение оборота выручки из регистра. Таким образом, в результате запроса будут присутствовать все услуги, и для некоторых из них будут указаны обороты выручки. Для тех услуг, которые не оказывались в выбранном периоде, не будет указано ничего.
Перейдем на закладку «Условия» и зададим условия выбора элементов из справочника «Номенклатура». При задании условий выбора мы снова будем использовать параметры запроса. Первым условием должно быть то, что выбранный элемент не является группой (для этого следует переключиться в режим «Произвольное условие»). Вторым условием должно быть то, что выбранный элемент является услугой, т.е., что он принадлежит группе «Услуги»:
Перейдем на закладку «Объединения/Псевдонимы» и укажем, что представление элемента справочника будет иметь псевдоним «Услуга», а поле регистра будет иметь псевдоним «Выручка»:
Перейдем на закладку «Порядок» и укажем, что результат запроса должен быть отсортирован по убыванию значения поля «Выручка».
На закладке «Итоги» определим, что нужно выводить общие итоги, и они должны представлять собой сумму значений поля «Выручка»:
На закладке «Отчет» сбросим флаг «Использовать построитель отчета».
Теперь перейдем на закладку «Выходная форма». Укажем, что параметры «ДатаОкончания» и «ДатаНачала» будут редактироваться в форме в полях ввода с типом «Дата». Для параметров «ВидНоменклатуры» и «Ложь» мы наоборот снимем признак редактирования в форме:
Нажмем «ОК». Платформа сформирует макет и форму отчета. Откроем модуль формы и найдем в нем процедуру «ДействияФормыРейтингУслугСформировать()». В этой процедуре, в той части, где выполняется установка параметров запроса, определим значение параметра «ВидНом», затем подставим его в вызов процедуры «РейтингУслуг()», вместо параметра «неопределено»:
Аналогичным образом поступим и в процедуре «РейтингУслуг()», где значения «неопределено» заменим на «ВидНоменклатуры» и «ЗнЛожь».
Теперь рассмотрим текст запроса, сформированный конструктором.
Сначала, как обычно, идет часть описания запроса. При описании источников запроса (после ключевого слова «ИЗ»), использована возможность определения нескольких источников запроса. В данном случае выбираются записи из двух источников: «СпрНоменклатура» и «ПродажиОбороты», причем ключевым предложением «ЛЕВОЕ СОЕДИНЕНИЕ. ПО» описан способ, которым будут скомбинированы между собой записи этих двух источников.
«ЛЕВОЕ СОЕДИНЕНИЕ» означает, что в результат запроса надо включить комбинации записей из обоих источников, которые соответствуют указанному после ключевого слова «ПО» условию. Кроме этого, в результат запроса надо включить еще и записи из первого (указанного слева от слова «СОЕДИНЕНИЕ») источника, для которых не найдено соответствующих условию записей из второго источника.
В описании первого источника и условия соединения нет для нас ничего нового, а вот при описании второго источника, используется возможность задания параметров виртуальной таблицы запроса.
Если заранее известно, что пользователя не будут интересовать результаты работы отчета в периодах, указанных с точностью до секунд, то следует учесть следующую особенность: по умолчанию время в дате установлено в 00:00:00. Поэтому, если не предпринять специальных мер, получится, что когда пользователь задаст период отчета с 01.03.2004 по 31.03.2004, итоги регистра будут рассчитаны с начала дня 01.03.2004 00:00:00 по начало дня 31.03.2004 00:00:00. Таким образом, данные за 31 число, отличные от начала дня, в расчет не войдут, что сильно удивит пользователя.
Для того чтобы исключить эту ситуацию, следует сделать две вещи.
Во-первых, в форме отчета ограничить пользователя в возможностях ввода даты начала и даты окончания, установив для соответствующих полей ввода в диалоге состав даты как «Дата».
Во-вторых, при передаче параметров использовать встроенную функцию «КонецДня()». Для этого вернемся в модуль формы отчета и внесем необходимые изменения в процедуру «ДействияФормыРейтингУслугСформировать()»:
Условию отбора всегда предшествует ключевое слово «ГДЕ». После него описывается само условие. Обратите внимание, что поля исходных таблиц, на которые накладывается условие, могут и не входить в список выборки (как в нашем случае). Кроме того, в нашем условии использован параметр запроса «ВидНоменклатуры».
Она всегда начинается с ключевого слова «ИТОГИ», за которым следует описание того, какие итоги будут присутствовать в результате запроса. Сразу после слова «ИТОГИ» описываются агрегатные функции, которые необходимо рассчитывать в итогах. В нашем случае будет рассчитываться сумма по полю «Выручка». Затем следует ключевое слово «ПО», после которого описываются группировки, в которых должны быть рассчитаны итоги. В нашем случае они отсутствуют, и используется только ключевое слово «ОБЩИЕ», которое указывает на то, что итоги будут рассчитаны по всей таблице в целом.
Теперь, когда мы закончили знакомиться с текстом запроса, запустим 1С:Предприятие в режиме отладки и посмотрим, как работает наш отчет. Зададим период отчета в один день и убедимся, что данные за этот день попадают в отчет.
Таким образом, на примере этого отчета мы продемонстрировали, как отбирать данные в некотором периоде, как задавать параметры запроса и как использовать в запросе данные из нескольких таблиц и включать в результат запроса все данные одного из источников.