- •Язык запросов
- •Отчет РеестрДокументовОказаниеУслуги
- •Процедура РеестрДокументовОказаниеУслуги(ТабДок) Экспорт
- •/Л}конструктор_выходных_форм КонецПроцедуры
- •Отчет Рейтинг услуг
- •Перечисления.ВидыНоменклатуры.Услуга);
- •Отчет ВыручкаМастеров
- •Отчет ПереченьУслуг
- •Процедура ПриОткрытии() // Заполним список поля выбора
- •Создание универсального отчета
- •|{Итоги по Номенклатура, Клиент, Мастер}
- •ЭлементыФормы.ПолеТабличногоДокумеита
- •Отчет Универсальный2
Процедура ПриОткрытии() // Заполним список поля выбора
ПолеВыбора = ТипДиаграммы. Гистограмма;
ЭлементыФормы.Диаграмма.ТипДиаграммы = ПолеВыбора;
Сформировать(); КонецПроцедуры
В теле модуля формы опишем заполнение списка выбора для поля выбора:
СписокВыбора = ЭлементыФормы.ПолеВыбора.СписокВыбора;
СписокВыбора.Добавить(ТипДиаграммы.График, "График"); СписокВыбора.Добавить(ТипДиаграммы.Гистограмма, "Гистограмма"); СписокВыбора.Добавить(ТипДиаграммы.ГистограммаОбъемная, "Гистограмма 3D"); СписокВыбора.Добавитъ(ТипДиаграммы.ГистограммаГоризонтальная,
"Гистограмма горизонтальная"); СписокВыбора.Добавить(ТипДиаграммы.ГистограммаГоризонтальнаяОбъемная,
"Гистограмма горизонтальная 3D");
СписокВыбора.Добавить(ТипДиаграммы.Круговая, "Круговая"); СписокВыбора.Добавить(ТипДиаграммы.КруговаяОбъемная,"Круговая объемная"); СписокВыбора.Добавить(ТипДиаграммы.Изометрическая," Изометрическая"); СгшсокВыбора.Добавить(ТипДиаграммы.ИзометрическаяНепрерывная,
"Изометрическая непрерывная"); СписокВыбора.ДобавитьСГипДиаграммы.ИзометрическаяЛента,
"Изометрическая лента");
СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяПирамида, "Изометрическая пирамида");
И в заключение, создадим обработчик события поля выбора «При изменении», и выполним в нем установку типа диаграммы:
ПроцедураПолеВыбораПриИзмененииЭлемент)
ЭлементыФормы.Диаграмма.ТипДиаграммы = ПолеВыбора; КонецПроцедуры
Запустим 1С:Предприятие в режиме отладки и откроем отчет «РейтингКлиентов». Обратите внимание, что при наведении курсора на столбец гистограммы появляется подсказка:
Теперь изменим тип диаграммы на «Круговая объемная>:
Только что мы рассмотрели с вами общий случай заполнения Диаграммы данными. Однако если исходные данные могут быть получены в виде таблицы значений или области ячеек табличного Документа, существует более простой и эффективный способ заполнения диаграммы данными, используя свойство диаграммы - «ИсточникДанных».
Вернемся в модуль формы отчета «РейтингКлиентов» и все строки, которыми мы добавляли в диаграмму данные:
ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
Диаграмма = ЭлементыФормы.Диаграмма; //запретить автотранспонирование диаграммы Диаграмма.АвтоТранспонирование = Ложь;
//создать единственную точку диаграммы ТочкаДиаграммы = Диаграмма.УетановитьТочку("Доход");
//перебрать выборку результата запроса и создать серии и значения Пока ВыборкаРезультатаЗапроса.Следующий() Цикл ТекущаяСерияДиаграммы = Диаграмма
.УстановитьСерияКВыборкаРезультатаЗапроса.Клиент); Диаграмма.УстановитьЗначение(ТочкаДиаграммы, ТекущаяСерияДиаграммы,
ВыборкаРезультатаЗапроса.Доход); КонецЦикла;
//разрешить автотранспонирование диаграммы Диаграмма.АвтоТранспонирование = Истина;
Заменим одной строкой:
ЭлементыФормы.Диаграмма.ИсточникДанных = Запрос,Выполнить().Выгрузить();
Дело в том, что метод Выгрузить() по умолчанию выгружает результат запроса в таблицу значений, которую мы и устанавливаем диаграмме в качестве источника данных. Причем структура получаемой таблицы значений как раз соответствует расположению серий в строках диаграммы, принятому по умолчанию.
Запустите 1С:Предприятие в режиме отладки и проверьте работу отчета. Обратите внимание на то, что некоторые типы диаграмм выглядят «некрасиво» (график) или не отображаются совсем (изометрическая непрерывная, изометрическая лента). Это связано с тем, что при использовании источника данных нет возможности использовать свойство диаграммы «АвтоТранспонирование» и нужно обрабатывать транспонирование диаграммы свойство СерииВСтроках).
Таким образом, на примере этого отчета мы продемонстрировали как создавать запросы, используя конструктор запросов, и как использовать диаграмму для визуализации результата запроса.
Универсальный отчет
На примере создания универсального отчета мы познакомимся с объектом встроенного языка ПостроительОтчета и узнаем как работать со сводной таблицей.
Построитель отчета
Построитель отчета является объектом встроенного языка, позволяющим выполнять различные настройки запроса в ходе выполнения программы. Такие настройки могут выполняться как средствами встроенного языка (в результате некоторого алгоритма работы программы), так и работы интерактивно, непосредственно пользователем.
Исходными данными для построителя отчета является текст запроса. На его основании построитель отчета определяет, какие параметры будут доступны для настройки и каким образом возможна настройка состава и порядка итоговых данных. Затем происходит программное или интерактивное формирование этих настроек и вывод результатов в табличный документ, диаграмму, сводную таблицу или сводную диаграмму.
Формировать параметры настройки на основании текста запроса построитель отчета может двумя способами: автоматически и на основании указаний, расположенных в тексте запроса.
Автоматически параметры настройки формируются вызовом метода ЗаполнитьНастройки() следующим образом:
• полями, доступными для выбора в качестве полей отбора, порядка или вывода в отчет (свойство «ДоступныеПоля»), становятся все поля из списка выборки и все их подчиненные поля,
-
в список полей, выбранных для вывода в отчет (свойство «ВыбранныеПоля»), добавляются все поля из списка выборки,
-
полями, доступными для выбора в качестве измерений, становятся все поля из предложения ИТОГИ ПО и все их подчиненные поля,
-
в список измерений по строкам (свойство «ИзмеренияСтроки») добавляются все поля из предложения ИТОГИПО,
-
в доступные отборы (свойство «Отбор») добавляются параметры виртуальных таблиц.
Вторым способом формирования параметров настроек построителя отчета является выделение их в тексте запроса. Для этого используются фигурные скобки «{}». Фигурными скобками могут быть выделены параметры построителя отчета, а также некоторые синтаксические конструкции:
-
ВЫБРАТЬ ... - описывает поля, которые пользователь сможет выбирать для вывода,
-
ГДЕ ... - описывает поля, на которые пользователь может накладывать ограничения,
-
УПОРЯДОЧИТЬПО ... - описывает поля для обозначения порядка,
• ИТОГИ ПО ... - описывает поля, по которым будут выводиться итоговые значения.
После того, как значения параметров указаны, вывод результатов запроса возможен как принудительно (используя методы Выполнить() и Вывести()), либо автоматически, если результаты выводятся в сводную таблицу.