Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.03.2019

Просмотров: 51819

Скачиваний: 8725

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Этот пример можно посмотреть в демонстрационной конфигурации «Язык запросов»,
прилагающейся к книге, в обработке Работа с запросами.

подробнее

О работе с табличным документом подробнее можно прочитать в книге «Решение
специальных прикладных задач в «1С:Предприятии 8.2» из серии «Профессиональная
разработка».

Вывод в диаграмму
Теперь с помощью конструктора выведем результат этого же запроса в диаграмму.
Поскольку диаграмма заполняется данными на сервере, а выводится пользователю на
клиенте, сначала создадим реквизит формы ДиаграммаЗаказов типа Диаграмма,
который и будет содержать данные диаграммы, и перетащим его в дерево элементов
формы обработки. После этого создадим в модуле формы небольшую заготовку (листинг
2.30).

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

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

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

На закладке конструктора Обработка результатов в группе Тип обработки выберем
опцию Вывод в диаграмму (рис. 2.44).


background image

Рис. 2.44. Окно конструктора запроса с обработкой результата

На закладке конструктора Таблицы и поля несколько изменим запрос – уберем из списка
полей выборки поля Дата и Сумма, так как они в этом примере не нужны (рис. 2.45).

Рис. 2.45. Окно конструктора запроса с обработкой результата

На закладке конструктора Итоги из итоговых полей также уберем поле Сумма (рис.
2.46).


background image

Рис. 2.46. Окно конструктора запроса с обработкой результата

Нажмем ОК. В процедуре ЗаполнитьДиаграмму() (откуда был вызван конструктор)
конструктор запроса с обработкой результата сформирует следующий фрагмент кода
(листинг 2.31).

Листинг 2.31. Фрагмент процедуры для вывода результата запроса в диаграмму, созданный с помощью конструктора
запроса с обработкой результата


background image

В результате в процедуре ЗаполнитьДиаграмму() сначала создается и выполняется
запрос, определенный в конструкторе. Затем диаграмма Диаграмма, переданная в
функцию, очищается, и на время ее заполнения данными отключается обновление и
автотранспонирование диаграммы. Тип диаграммы здесь не определяется, но по
умолчанию он устанавливается как Гистограмма объемная.

Далее начинается обход двух вложенных друг в друга выборок – итоговых группировок
Клиент и Товар. В цикле обхода первой выборки ВыборкаКлиент методом
УстановитьСерию() определяются серии диаграммы. В цикле обхода вложенной в нее
выборки ВыборкаТовар методом УстановитьТочку() определяются точки диаграммы и
методом УстановитьЗначение() устанавливается значение серии диаграммы в точке.

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

Таким образом, при вызове процедуры ВыводВДиаграмму() в поле диаграммы мы
получим следующий результат (рис. 2.47).


background image

Рис. 2.47. Вывод результата запроса в диаграмму

Таким образом, мы видим те же данные о количестве заказанных товаров по клиентам,
что и в поле табличного документа (см. рис. 2.43), но представленные в виде
гистограммы.

Этот пример можно посмотреть в демонстрационной конфигурации «Язык запросов»,
прилагающейся к книге, в обработке Работа с запросами.

подробнее

О работе с диаграммой подробнее можно прочитать в книге «Решение специальных
прикладных задач в «1С:Предприятии 8.2» из серии «Профессиональная разработка».

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

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

Результат запроса можно выгрузить в таблицу значений или дерево значений с помощью
метода Выгрузить() объекта РезультатЗапроса, который возвращает объект