Отчет рейтинг услуг 1с

Обновлено: 02.07.2024

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

Создание отчета Рейтинг услуг

1. Добавьте в конфигураторе объект конфигурации Отчет.

2. На закладке Основные укажите: имя отчета – РейтингУслуг.

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

4. В конструкторе схемы компоновки данных создайте Набор данных – запрос. После чего нажмите кнопку Конструктор запроса, в качестве источника данных для запроса выберите объектную таблицу Номенклатура и виртуальную таблицу регистра накопления Продажи.Обороты. Выберите все поля этих таблиц.

5. Чтобы исключить неоднозначность имен в запросе, необходимо переименовать таблицу Номенклатура в спрНоменклатура: выделите Номенклутару в списке Таблицы, щелкните правой кнопкой мыши - Переименовать таблицу.



Рис. 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 Структура отчета "РейтингУслуг"

20. Перейдите на подзакладку Другие настройки и задайте заголовок отчета - Рейтинг услуг:


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

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

22. Закройте конструктор схемы компоновки данных и в окне редакти­рования объекта конфигурации Отчет РейтингУслуг перейдите на закладку Подсистемы. Отметьте в списке подсистем: Оказание услуг и Бухгалтерия.



Рис. 13.11 Определение пользовательских настроек


Настройки в конфигураторе и в режиме 1С:Предприятие

24. На примере этого отчета изучите другие настройки отчета - Условное оформление и Отбор. Настройки можно задать как в режиме Конфигуратор, так и в режиме 1С:Предприятие по команде Все действия > Изменить вариант. Разница в том, что те настройки, которые будут изменяться в конфигураторе, называются стандартными настройками и будут сохранены в самой схеме компоновки данных, то есть любой пользователь конфигурации будет видеть отчет именно в таком виде, как он настроен в конфигураторе. А в режиме 1С:Предприятие, настройка уже не будет являться частью конфигурации и будет доступна только одному конкретному пользователю конкретной информационной базы.


Рис. 13.13 Выбор вариантов отчета из пользовательских настроек

Условное оформление

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

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


Рис. 13.14 Настройка условного оформления

26. Нажмите ОК. Затем укажите Условие: нажмите кнопку выбора в поле Условие и в появившемся окне нажмите кнопку Добавить и укажем в графе Левое зна­чение поля - Выручка, в графе Вид сравнения - Меньше, а в графе Правое значение - 700.


Рис. 13.15 Настройка условного оформления

27. В поле Оформляемые поля: и в появившемся окне, нажимая кнопку, Добавить, можно выбрать поля Услуга и Выручка.

Пользовательские настройки

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



Рис. 13.16 Состав пользовательских настроек

Добрый вечер! Пытаюсь освоить азы программтрования 1с. Читаю книгу Радченко, и столкнулся с проблемой небольшой. Суть проблемы: создал отчет Рейтинг услуг
который работает некорректно. тоесть в поле ввода ввожу даты начала и конца с надеждой получить рейтинг услуг в порядке убывания отчет ничего не показывает
Самое интересно что если даты не вносить то отчет показывает верные итоги по регистру накопления (оборотному). Заранее спасибо за помощь
код модуля формы

[codebox]
Процедура ДействияФормыРейтингУслугСформировать(Кнопка)
// // Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны.

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
РейтингУслуг(ТабДок, Неопределено, ДатаКонца, ДатаНачала);

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

Макет = ОтчетОбъект.ПолучитьМакет("РейтингУслуг");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Услуга,
| СпрНоменклатура.Представление,
| ПродажиОбороты.ВыручкаОборот КАК Выручка
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаКонца,Месяц , ) КАК ПродажиОбороты
| ПО ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка
|ГДЕ
| СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
| И СпрНоменклатура.ВидыНоменклатуры = &ВидыНоменклатуры
|
|УПОРЯДОЧИТЬ ПО
| Выручка УБЫВ";

Запрос.УстановитьПараметр("ВидыНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);

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

Диаграмма является элементом управления, предназначенным для размещения в таблицах и формах диаграмм и графиков различного вида системы 1С:Предприятие.

Логически диаграмма является совокупностью точек, серий и значений серий в точке (рис. 149).

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

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

Диаграмма как объект встроенного языка имеет три области, которые позволяют управлять оформлением диаграммы: область построения, область заголовка и область легенды (рис. 150).

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


Рис. 149. Пример диаграммы


Рис. 150. Области диаграммы

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

Создайте набор данных – запрос (НаборДанных1) и вызовите конструктор запроса. Выберите виртуальную таблицу регистра накопления Продажи.Обороты и из нее одно поле – ПродажиОбороты.Клиент.

Затем добавьте новое поле (значок Добавить в командной панели над списком полей) и при помощи построителя выражений определите его как разность между выручкой и стоимостью (рис. 151).


Рис. 151. Редактор произвольного выражения поля

В результате список выбранных полей будет иметь следующий вид (рис. 152):


Рис. 152. Выбранные поля

На закладке Объединения/Псевдонимы укажите, что вычисляемое поле будет иметь псевдоним Доход (рис. 153).


Рис. 153. Объединения/Псевдонимы

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

В отличие от всех предыдущих отчетов, структура которых содержала группировки, в этот раз добавьте в структуру отчета диаграмму (рис. 154).


Рис. 154. Структура отчета

В точки диаграммы добавьте группировку по полю Клиент. Серии диаграммы оставьте без изменений.

Теперь перейдите на закладку Выбранные поля и выберите поле Доход для вывода в отчет. Структура отчета должна принять следующий вид (рис. 155):


Рис. 155. Структура отчета и настройки диаграммы

На закладке Другие настройки задайте заголовок отчета – Рейтинг клиентов, а также выберите тип диаграммы – Круговая объемная.

Запустите 1С:Предприятие в режиме отладки и откройте отчет Рейтинг клиентов (рис. 156).


Рис. 156. Круговая объемная диаграмма в отчете

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

Откройте настройки отчета и измените тип диаграммы на Измерительная. Заново сформируйте отчет (рис. 157).

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


Перейдем на закладку «Макеты» и вызовем конструктор выходной формы.


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


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

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


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


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


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

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


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

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


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


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


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


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


Нажмем «ОК». Платформа сформирует макет и форму отчета. Откроем модуль формы и найдем в нем процедуру «ДействияФормыРейтингУслугСформировать()». В этой процедуре, в той части, где выполняется установка параметров запроса, определим значение параметра «ВидНом», затем подставим его в вызов процедуры «РейтингУслуг()», вместо параметра «неопределено»:


Аналогичным образом поступим и в процедуре «РейтингУслуг()», где значения «неопределено» заменим на «ВидНоменклатуры» и «ЗнЛожь».


Теперь рассмотрим текст запроса, сформированный конструктором.

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

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

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

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

Если заранее известно, что пользователя не будут интересовать результаты работы отчета в периодах, указанных с точностью до секунд, то следует учесть следующую особенность: по умолчанию время в дате установлено в 00:00:00. Поэтому, если не предпринять специальных мер, получится, что когда пользователь задаст период отчета с 01.03.2004 по 31.03.2004, итоги регистра будут рассчитаны с начала дня 01.03.2004 00:00:00 по начало дня 31.03.2004 00:00:00. Таким образом, данные за 31 число, отличные от начала дня, в расчет не войдут, что сильно удивит пользователя.

Для того чтобы исключить эту ситуацию, следует сделать две вещи.

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


Во-вторых, при передаче параметров использовать встроенную функцию «КонецДня()». Для этого вернемся в модуль формы отчета и внесем необходимые изменения в процедуру «ДействияФормыРейтингУслугСформировать()»:


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

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

Далее в запросе следует часть упорядочивания результатов, а за ней - новая для нас часть, которая не встречалась ранее - описание итогов.

Она всегда начинается с ключевого слова «ИТОГИ», за которым следует описание того, какие итоги будут присутствовать в результате запроса. Сразу после слова «ИТОГИ» описываются агрегатные функции, которые необходимо рассчитывать в итогах. В нашем случае будет рассчитываться сумма по полю «Выручка». Затем следует ключевое слово «ПО», после которого описываются группировки, в которых должны быть рассчитаны итоги. В нашем случае они отсутствуют, и используется только ключевое слово «ОБЩИЕ», которое указывает на то, что итоги будут рассчитаны по всей таблице в целом.


Теперь, когда мы закончили знакомиться с текстом запроса, запустим 1С:Предприятие в режиме отладки и посмотрим, как работает наш отчет. Зададим период отчета в один день и убедимся, что данные за этот день попадают в отчет.

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

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

Создадим новый объект конфигурации Отчет. Назовем его ПереченьУслуг и запустим конструктор схемы компоновки данных. Созда­дим новый Набор данных - запрос и вызовем конструктор запроса.

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


Вызовем диалог ввода параметров виртуальной таблицы ЦеныСрезПоследних и укажем, что период будет передан в параметре ДатаОтчета.


Затем выберем из таблиц следующие поля:


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


На закладке Условия задайте условие выбора элементов спра­вочника Номенклатура - выбираемые элементы должны соответс­твовать виду номенклатуры, переданному в параметре запроса Вид Номенклатуры.


На закладке Объединения/Псевдонимы укажите, что поле Ро­дитель будет иметь псевдоним ГруппаУслуг, а поле Ссылка - Услу­га.


Перейдите на закладку Группировка и укажите, что группировка будет производиться по полю СпрНоменклатура.Родитель. Значе­ния суммируемых полей задавать не надо.


На этом создание запроса завершено, нажмем ОК. Теперь рассмот­рим текст запроса, сформированный конструктором и отредактируем его (листинг).

Листинг. Текст запроса

СпрНоменклатура.Родитель КАК ГруппаУслуг,

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

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

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета, ) КАК ЦеныСрезПоследних

ПО ЦеныСрезПоследних.Номенклатура=СпрНоменклатура.Ссылка

Перейдем к редактированию схемы компоновки данных. На закладке Ресурсы нажатием кнопки >> выберем единственный до­ступный ресурс Цена.

На закладке Параметры зададим значение параметра ВидНоменклатуры как Перечисление.ВидыНоменклатуры.Услуга.


Снимем ограничение доступности для параметра ДатаОтчета и зададим ему заголовок - Дата отчета. В поле Доступные типы зададим состав даты - Дата. Для параметра Период, наоборот, установим ограничение доступности.


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


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


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

Чтобы запретить вывод общих итогов в отчете, установим пара­метр Расположение общих итогов по вертикали в значение Нет.


Затем перейдем к настройкам конкретной группировки - Груп­паУслуг. Для параметра Расположение итогов этой группировки укажем значение Нет. Вернемся к настройкам всего отчета в целом.


Зададим заголовок отчета - Перечень услуг.

Теперь запустим 1С:Предприятие в режиме отладки и прежде всего откроем периодический

регистр Цены.

Добавим в него еще одно значение для услуги Диагностика: но­вая цена услуги на 01.04.2008 - 350. Это позволит нам протестировать отчет.

Теперь выполним отчет Перечень услуг по состоянию на 31.03.2008.


Наш отчет правильно отражает цену услуги Диагностика на 31.03.2008 - 200 руб.

Еще раз выполним отчет, но теперь уже на другую дату -01.04.2008.


Как видите, показана новая цена услуги Диагностика – 350 руб.

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

Отчет Рейтинг клиентов

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

Диаграмма

Диаграмма является элементом управления, предназначенным для размещения в таблицах и формах диаграмм и графиков различного вида системы 1С:Предприятие.

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

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

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

Диаграмма как объект встроенного языка имеет три области: область построения, область заголовка, область легенды.

Создание отчета Рейтинг клиентов

Создать в конфигураторе новый ОК Отчет. Имя – Рейтинг клиентов. Открыть его основную схему компоновки данных.

Создать Набор данных – запрос, вызвать конструктор запроса и выбрать виртуальную таблицу регистра накопления Продажи.Обороты и из нее одно поле – ПродажиОборооты.Клиент.


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


В результате список выбранных полей будет иметь вид:


На закладке Объединения/Псевдонимы указать, что вычисляемое поле будет иметь псевдоним Доход.


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


Листинг. Текст запроса.

ПродажиОбороты.ВыручкаОборот - ПродажиОбороты.СтоимостьОборот КАК Доход

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

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

Листинг. Вычисляемое поле

ПродажиОбороты.ВыручкаОборот - ПродажиОбороты.СтоимостьОборот КАК Доход

Теперь добавьте поле Доход в ресурсы схемы компоновки данных и перейдите на закладку Настройки, чтобы создать структуру отчета.


Добавить структуру отчета диаграмму.


В точки диаграммы добавить группировку по полю Клиент. Серии диаграммы оставить без изменения.


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


На закладке Другие настройки задать заголовок отчета и выбрать тип диаграммы.


Запустите 1С:Предприятие в режиме отладки и откройте отчет Рейтинг клиентов.


При наведении курсора на сектор диаграммы появляется подсказка.

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


Универсальный отчет

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

Создайте ОК Отчет. Задайте имя Универсальный. Откройте основную схему компоновки данных с создайте новый Набор данных - запрос.

Вызовите конструктор запроса и выберите виртуальную таблицу регистра накопления Продажи.Обороты. Из этой таблицы выберите все поля.


На закладке Группировка с помощью кнопок >> выберите все поля, доступные для группировки, а все ресурсы добавьте в Суммируемые поля.


Нажмите ОК. Просмотреть текст сформированный конструктором запроса:

Листинг. Текст запроса

СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот,

СУММА(ПродажиОбороты.ВыручкаОборот) КАК ВыручкаОборот,

СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

На закладке Ресурсывыберите все доступные ресурсы (нажмите >>). На этом работа со схемой компоновки данных завершена. Закройте ее и вернитесь к окне редактирования ОК Отчет Универсальный.

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


На экране откроется основная форма отчета. Система вставила за нас поле табличного документа и дала ему имя – Результат.



Теперь можно редактировать табличное поле.

Установите курсор в верхнюю левую ячейку поля табличного документа.



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


Для того, чтобы в сводную таблицу вывести данные, нужно написать листинг в модуле формы. Добавьте ниже расположенный листинг в модуль формы:

Читайте также: