Механизм и конструктор языка запросов в программном обеспечении для учета ресурсов предприятия. Учебное пособие
.pdf
Временные таблицы
Язык запросов позволяет использовать в запросах временные таблицы. С их помощью можно повысить производительность запросов, в некоторых случаях снизить количество блокировок и сделать текст запроса более легким для восприятия. Предположим, нужно получить данные из двух регистров накоп-
ления. Данные из одного регистра поместим во временную таблицу:
31
Запрос, использующий временную таблицу, будет иметь вид:
Пакетные запросы
Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами, таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных символом «;». Запросы исполняются один за другим. Результатом выполнения пакетного запроса в зависимости от используемого метода будет - яв ляться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.
32
Конструкторы запроса
Для облегчения труда разработчика технологическая платформа содержит два специальных конструктора. Они служат для того, чтобы помочь разработчику составить правильный текст запроса, используя только визуальные средства. Выбирая мышью нужные поля таблиц, можно составить работоспособный запрос, даже не зная синтаксиса языка запросов. Конструктор запроса позволяет составить только текст запроса. Конструктор запроса с обработкой результата помимо текста запроса формирует фрагмент программного кода, который исполняет запрос и выводит результаты в табличный документ или диаграмму.
Конструктор запроса
Конструктор запроса - это один из инструментов разработки. Он позволяет составить текст запроса на языке запросов ис-
ключительно |
визуальными |
средствами. С помощью |
-кно |
|||
пок Далее и Назад можно перемещаться |
по закладкам конструк- |
|||||
тора |
и указывать, какие |
данные |
должны |
присутствовать |
||
в результате запроса, как они связаны, сгруппированы, какие итоги следует рассчитать, работать с временными таблицами, редактировать пакет запросов.
33
Результатом работы конструктора будет являться синтаксически правильный текст запроса. Таким образом, можно составить работоспособный запрос, даже не владея синтаксисом языка запросов – необходимые синтаксические конструкции конструктор сгенерирует автоматически. Готовый текст запроса может быть сразу же вставлен в текст модуля или скопирован в буфер обмена.
Кроме этого конструктор запросов позволяет редактировать уже имеющийся в программе текст запроса. Для этого достаточно установить курсор внутри существующего текста запроса и вызвать конструктор. Имеющийся текст запроса будет проанализирован и представлен в конструкторе в виде соответствующих
34
выбранных полей базы данных и набора заданных связей, группировок, условий и т. д.
Консоль запросов
Инструмент Консоль запросов позволяет разработчикам конфигураций и специалистам по внедрению отлаживать запросы
и |
просматривать |
результаты |
их выполнения |
в режим |
||
1С:Предприятие 8. |
|
|
|
|
||
|
Внешняя обработка Консоль запросов может быть запуще- |
|||||
на |
в любом |
прикладном решении |
в режиме1С:Предприятие. |
|||
С |
помощью |
этой |
обработки |
разработчик |
или |
специалист |
по |
внедрению |
может |
составить текст запроса, выполнить |
его |
||
и проанализировать полученные результаты:
35
Рассмотрим пример работы с запросом. Выведем с помощью запроса все элементы справочника Автомобили в таблицу значений. Работа с запросами осуществляется через объект -За прос. Создается данный объект с помощью оператора Новый:
Запрос = Новый Запрос
Создадим обработку и разместим на ней табличное поле Автомобили.
Для того чтобы быстро и удобно создавать запросы, мы будем использовать Конструктор запросов. Сам текст запроса необходимо передать в объект Запрос, поэтому будем использовать свойство Текст объекта Запрос. Вызовем его и поставим пустую строку.
Теперь откроем Конструктор запроса.
36
Запрос создан, осталось только нажать на кнопку ОК. И соответствующий текст появился в модуле:
В данном запросе три ключевых слова: ВЫБРАТЬ, ИЗ и КАК. Первое слово ВЫБРАТЬ определяет поля, которые будут выбраны из таблицы, они перечислены через запятую. Второе слово ИЗ показывает, из какого источника будут выбраны данные. Третье слово КАК задает, каким образом будет называться источник данных в запросе.
Запрос непосредственно написан, но чтобы получить данные, необходимо выполнить запрос к базе данных. Для этого используется метод Выполнить объекта Запрос:
Данный метод является функцией, которая возвращает объект, так и называющийся Результат запроса, этот объект предназначен для хранения полученных данных. Далее выведем данные в таблицу значений. Заполним таблицу на форме с помощью Выборки:
37
Как и в остальных выборках, мы так же обращаемся к методу «Следующий», чтобы позиционироваться на следующем элементе. Так же получаем значения полей, только уже из запроса, обращаясь к выборке через точку, при этом указывая название поля. Посмотрим, как работает запрос.
3. Регистры
Регистры - это таблицы для накопления оперативных данных и получения сводной информации. Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в1С:Предприятие выглядит следующим образом:
Документы => Регистры => Отчеты.
Основная проблема при проектировании регистраэто определение его структуры. Структура регистра должна быть такова, чтобы извлекать из него нужную информацию без утомительной обработки. В регистре имеются измерения и ресурсы.
Измерения регистра - это то, в каких разрезах требуется хранение информации. Ресурсы регистра - это количественные или суммовые данные, которые хранятся в регистре. Регистры бывают нескольких видов:
-регистр сведений;
-регистр накопления;
-регистр бухгалтерии;
-регистр расчета.
38
3.1. Регистр сведений
Регистры сведений – это прикладные объекты конфигурации. Они позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений. Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен и пр.
|
|
|
Структура |
|
|
|
Информация в регистре сведений хранится в виде записей, |
|
|||||
каждая |
из |
которых |
содержит |
значения |
измер |
|
и соответствующие |
им значения ресурсов. Измерения регистра |
|
||||
описывают |
разрезы, в |
которых |
хранится |
информация, |
||
а ресурсы регистра непосредственно содержат хранимую инфор- |
|
|||||
мацию. Например, для регистра сведений Цены товаров, который имеет следующую структуру:
записи, хранимые в базе данных, будут выглядеть следующим образом:
39
Вместе с каждой записью, находящейся в регистре сведений, можно хранить дополнительную произвольную информацию. Для этого служат реквизиты регистра сведений.
|
|
Периодичность |
|
|
|
Одной из возможностей регистра сведений является хране- |
|||
ние |
данных |
не только |
в разрезе |
указанных , измерений |
но и в разрезе времени. Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:
40
