Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторное занятие № 10 |
РАБОТА С ЗАПРОСАМИ В СИСТЕМЕ «1С:ПРЕДПРИЯТИЕ 8.2» |
Цель занятия:
в системе «1С:Предприятие 8.2».
Время на выполнение работы: 4 часа
Учебные вопросы:
Подготовка к выполнению работы:
Для формирования и выполнения запросов к таблицам базы данных в системе используется специальный объект метаданных "Запрос". Запрос удобно использовать, когда необходимо получить сложную выборку данных, сгруппированную и отсортированную нужным образом. Механизм запросов позволяет легко получать информацию в различных временных разрезах.
Имеют место такие понятия, как:
Когда речь заходит о запросе, возникает ряд сопряженных с ним понятий:
Источники данных
Исходную информацию запрос получает из набора таблиц. Эти таблицы представляют разработчику данные реальных таблиц базы данных в удобном для анализа виде. Все таблицы, которыми оперирует язык запросов, можно разделить на две большие группы: реальные таблицы и виртуальные таблицы. Посмотреть состав таблиц, доступных для запроса, и их описание можно в синтакс-помощнике в разделе Работа с запросами ► Таблицы запросов.
Реальные таблицы «хранятся» в базе данных. В случае использования реальной таблицы могут присутствовать вычисляемые поля, значения которых рассчитываются как функция нескольких разных полей.
Виртуальные таблицы в базе данных не «хранятся». При обращении к информации виртуальных таблиц система автоматически «собирает» информацию из реальных таблиц для выполнения запроса. Все виртуальные таблицы параметризованы, то есть разработчику предоставляется возможность задать некоторые параметры, которые система будет использовать при формировании запроса создания виртуальной таблицы.
Реальные таблицы подразделяются на объектные (ссылочные) и необъектные (не ссылочные).
В объектных (ссылочных) таблицах представлена информация ссылочных типов данных (справочники, документы, планы видов характеристик и т.д.). А в необъектных (не ссылочных) - всех остальных типов данных (константы, регистры и т.д.).
Отличительной особенностью объектных (ссылочных) таблиц является то, что они включают в себя поле Ссылка, содержащее ссылку на текущую запись. Кроме этого, для таких таблиц возможно получение пользовательского представления объекта. Эти таблицы могут быть иерархическими, и поля таких таблиц могут содержать вложенные таблицы (табличные части).
В свою очередь любая таблица состоит из набора полей. В качестве поля таблицы может фигурировать:
Основное отличие обычного поля от вложенной таблицы состоит в том, что в рамках одной записи обычному полю соответствует одно единственное значение, а вложенной таблице соответствует значение типа «РезультатЗапроса» с заранее заданным набором колонок.
Нужно отметить, что поле может содержать значение одного типа, может содержать значения нескольких типов (иметь составной тип), при этом для конкретной записи поле содержит значение одного типа.
Структура запроса
Для формирования запросов, выборки и обработки результатов запросов в языке предусмотрен специальный набор объектов. С ними можно ознакомиться в Синтакс-Помощнике системы. С помощью этих объектов выполняется формирование запроса, обход записей запроса и т.д. Работа с запросом ведется при помощи трех основных объектов:
Для выполнения запроса (получения необходимой выборки данных) необходимо составить текст запроса. Текст запроса - это инструкция, в соответствии с которой должен быть выполнен запрос.
После составления текста запроса его необходимо выполнить. По окончании выполнения полученный результат необходимо «обойти» (разобрать результат запроса).
Для формирования текста запроса существует специализированный язык запросов. Он определяет используемые синтаксические конструкции, структуру запроса.
Можно сказать, что текст запроса состоит из следующих секций:
Из всех вышеуказанных секций обязательно наличие только описания запроса. В свою очередь, данная секция имеет следующую структуру:
Выбрать [Различные] [Первые <Количество>]
<Список полей выборки>
[Из <Список источников>]
[Где <Условие отбора>]
[Сгруппировать По <Поля группировки>]
[Имеющие <Условия отбора>]
[Для изменения [[Of]<Cпиcoк таблиц верхнего уровня>]]
Уже в рамках данной секции обязательно только наличие «Выбрать» и указание полей выборки. Все остальные структурные элементы могут опускаться.
Объединение запросов определяет, как будут объединены результаты выполнения нескольких запросов.
Упорядочивание результатов определяет условия упорядочивания строк результата запроса.
Автоупорядочивание позволяет включить режим автоматического упорядочивания строк результата запроса.
Описание итогов определяет, какие итоги необходимо рассчитывать в запросе и каким образом группировать результат.
В случае, когда язык запросов используется для описания источников данных в системе компоновки данных, секция описания итогов языка запросов не используется. Это связано с тем, что система компоновки данных самостоятельно рассчитывает итоги на основании тех настроек, которые сделаны разработчиком или пользователем.
Применение различных синтаксических конструкций языка запросов подробно описано во встроенной справке в режиме Конфигуратор: Справка ► Содержание справки ► 1С:Предприятие ► Встроенный язык ► Работа с запросами.
Для большинства отчетов, разрабатываемых с помощью системы компоновки данных, запрос можно создать при помощи конструктора запросов.
Использование конструктора запросов
Конструктор запросов позволяет сформировать текст запроса в модуле и отредактировать имеющийся запрос. Для вызова конструктора запросов необходимо:
С помощью кнопок Далее конструктора запроса последовательно пройти по закладкам и выбрать необходимые исходные данные, указать при необходимости группировки и условия, установить нужный порядок, описать итоговые данные. В результате работы конструктора создадутся форма и макет, которые будут располагаться в соответствующих ветвях. По кнопке Запрос в любой момент можно открыть окно с текстом сформированного на основании указанных данных запроса.
Задание. Ознакомиться с формированием текста запроса, используя конструктор запросов и разработать 3 запроса на выборку.
Структуру некоторых запросов разберем на примере создания отчета «Выручка мастеров».
Задание №1. Добавим отчет, который назовем Выручка мастеров. Он будет содержать информацию о том, какая выручка была получена ООО «На все руки мастер» благодаря работе каждого из мастеров, с детализацией по всем дням в выбранном периоде и разворотом по клиентам, обслуженным в каждый из дней.
На примере этого отчета проиллюстрируем, как строить многоуровневые группировки в запросе и как обходить все даты в выбранном периоде, продемонстрируем настройку отдельных элементов структуры отчета, научимся выводить данные в диаграмму и создавать несколько вариантов отчета в конфигураторе. Для этого выполним следующие шаги:
Запрос для набора данных
Рисунок 2.1 Параметры виртуальной таблицы
Рисунок 2.2 Закладка «Объединения/Псевдонимы»
Анализ текста запроса
ВЫБРАТЬ
ПродажиОбороты.Мастер,
ПродажиОбороты.Период,
ПродажиОбороты.Клиент,
ПродажиОбороты.ВыручкаОборот КАК Выручка
ИЗ
РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
Заметим, что у источника данных задана периодичность выбираемых данных День. Именно благодаря этому появляется возможность описать среди выбранных полей поле Период.
Ресурсы
Параметры
КонецПериода(&ДатаОкончания,”День”)
В результате перечисленных действий параметры компоновки данных будут иметь следующий вид (рисунок 2.3).
Рисунок 2.3 - Параметры компоновки данных
Настройки
Для этого сначала выделим корневой элемент Отчет в структуре отчета, нажмем кнопку Добавить в командной панели окна настроек, добавим новую группировку и укажем поле группировки Мастер.
Рисунок 2.4 Поле группировки
Затем выделим группировку Мастер, нажмем кнопку Добавить, добавим новую группировку и укажем поле группировки Период.
Далее добавим еще одну группировку, вложенную в группировку по полю Период, - Детальные записи (без указания группировочного поля).
Для этого выделим группировку Период, нажмем кнопку Добавить и добавим новую группировку без указания группировочного поля.
Поля Мастер и Период мы не задаем, так как по этим полям производится группировка данных и их значение будет выведено автоматически.
В результате структура отчета будет иметь вид (рисунок 2.5).
Рисунок 2.5 Структура и поля отчета
По умолчанию поля группировок в отчете располагаются вертикально друг под другом. Установка этого свойства в значение Отдельно и только в итогах означает, что каждая группировка будет располагаться в отдельной области отчета слева направо и ее наименование будет выводиться только в данной группировке.
По умолчанию итоги по вертикали располагаются в конце. Установка этого свойства означает, что общие итоги будут отображаться в начале перед строками группировки.
В результате другие настройки отчета примут вид (рисунок 2.6).
Рисунок 2.6 Параметры настроек вывода отчета
Таким образом, перед формированием отчета пользователь сможет задать отчетный период (рисунок 2.7).
Рисунок 2.7 Создание быстрых настроек отчетного периода
Закроем конструктор схемы компоновки данных и в окне редактирования объекта конфигурации Отчет ВыручкаМастеров перейдем на закладку Подсистемы.
Отметим в списке подсистем конфигурации подсистемы Оказание услуг и Расчет зарплаты. Таким образом, ссылка на наш отчет автоматически попадет в панель действий этих подсистем.
В открывшемся окне 1С:Предприятия видим, что в панели действий разделов Оказание услуг и Расчет зарплаты в группе команд для выполнения отчетов появилась команда для формирования отчета Выручка мастеров.
Рисунок 2.8 Сформированный отчет «Выручка мастеров»
Вывод всех дат в выбранном периоде
Этот отчет должен показывать данные с детализацией по всем дням в выбранном периоде. У нас же отображаются только те дни, для которых существуют ненулевые записи в таблице регистра накопления Продажи.
Для детализации данных в отчете система компоновки данных позволяет указывать для группировок дополнение периодов с заданной периодичностью в указанном интервале.
Поэтому сейчас изменим настройки отчета таким образом, чтобы в отчет попадала каждая дата из периода, за который сформирован отчет.
В режиме Конфигуратор и выполним более тонкую настройку структуры отчета:
При установке настроек отчета в средней части окна, под деревом структуры отчета, должна быть выделена кнопка, соответствующая режиму настроек. Кнопка Отчет - для настройки отчета в целом или кнопка с именем группировки, например Детальные записи, если настройки относятся только к ней.
В нашем случае потребуется изменить настройку группировки Период.
Для того чтобы перейти к настройкам именно этой группировки, в поле структуры отчета установим курсор на эту группировку, а затем нажмем кнопку Период в командной панели окна.
В нижней части окна будут отображены настройки, доступные для данной группировки.
Рисунок 2.9 Установка типа дополнения Периода
Тем самым мы укажем, что для этой группировки существующие записи с ненулевым значением ресурса будут дополняться записями для каждого из дней. После этого следует указать, в каком именно периоде будет выполняться такое дополнение.
Для того чтобы обеспечить именно такую работу отчета, войдем в режим редактирования поля Начальная дата периода, дважды кликнув на нем, и нажмем кнопку очистки. После этого, нажав кнопку выбора типа данных, сможем выбрать тип данных, отображаемых в этом поле. Выберем Поле компоновки данных (рисунок 2.10). Нажмем ОК.
Рисунок 2.10 Выбор типа данных
Рисунок 2.11 Выбор поля
Рисунок 2.12 Результат выполнения отчета
Новый вариант отчета
Для анализа работы мастеров за определенный период может понадобиться представить ту же информацию в другом, более наглядном виде.
Например, директору при начислении зарплаты, чтобы понять, какой из мастеров лучше работает, вполне может понадобиться увидеть диаграмму, отражающую вклад каждого мастера в общую выручку предприятия за период.
Поэтому мы создадим другой вариант отчета ВыручкаМастеров, представляющий данные в виде диаграммы.
Диаграмма
Диаграмма как объект встроенного языка имеет три области, которые позволяют управлять оформлением диаграммы: область построения, область заголовка и область легенды.
Диаграмма может быть вставлена в структуру отчета как отдельный элемент. В следующем варианте настроек отчета ВыручкаМастеров будем использовать диаграмму в структуре настроек схемы компоновки данных.
В режиме Конфигуратор
Если у отчета есть несколько вариантов, то видим и можем изменять настройки того варианта, который выделен в данный момент. Причем вся остальная информация в схеме компоновке данных (ресурсы, параметры, наборы данных) осталась без изменений. Данные для отчета будут получены с помощью того же запроса к базе данных. Изменятся лишь настройки, которые определят, как будет представлен отчет.
Для демонстрации вклада мастеров в общий объем выручки хорошо подойдет измерительная диаграмма, которую хотим показать. Для этого вида диаграммы достаточно задать только точки, поэтому серии не задаем.
В значения диаграммы всегда выводится один из ресурсов отчета. У нас всего один ресурс - Выручка (поле ресурса помечено соответствующей пиктограммой и отличается от обычных полей).
Структура отчета должна принять следующий вид (рисунок 2.13).
Рисунок 2.13 Структура отчета и настройки диаграммы
В диаграмме обязательно должен выводиться ресурс отчета, иначе будет получена ошибка.
Рисунок 2.14 Настройка типа диаграммы
Рисунок 2.15 Настройка полос измерительной диаграммы
Состав пользовательских настроек для каждого варианта отчета нужно настраивать заново, поскольку у каждого варианта отчета - свои пользовательские настройки.
В открывшемся окне отчета нажмем кнопку Выбрать вариант (рисунок 2.16).
Рисунок 2.16 Выбор варианта отчета
В окне вариантов отчета видим теперь два варианта - Основной и только что созданный нами вариант Объем выручки. Выделим его и нажмем кнопку Выбрать.
Рисунок 2.17 Результат выполнения отчета
В результате видим те же данные, что и в основном варианте отчета, представленные в виде измерительной диаграммы. На диаграмме хорошо видна доля каждого мастера в общем объеме выручки. Обратите внимание, что при наведении курсора на сектор диаграммы появляется подсказка.
Если же понадобится просмотреть данные о работе какого-либо мастера с разбивкой по дням и клиентам, достаточно выбрать Основной вариант отчета и переформировать отчет.
Таким образом, на примере отчета Выручка мастеров показали создание и использование различных вариантов отчета в целях наилучшего представления информации о работе мастеров.
Задания на исследование:
1. Исследовать процесс разработки запросов при формировании отчетов.
2. Ответить на вопросы и оформить отчет.
Вопросы для проверки подготовки студентов к занятию
ЛИТЕРАТУРА
“ ”.................20_ _г Методическая разработка составлена
доцентом кафедры АСУ Т.Авакян
PAGE 1