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

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

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

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

Добавлен: 12.03.2019

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

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

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

Глава 2. Работа с запросами во встроенном языке

Конструктор запроса

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

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

Поэтому в платформе «1С:Предприятие» существуют инструменты для облегчения труда
разработчика при написании запросов – конструктор запроса и конструктор запроса с
обработкой результата
.

С помощью конструктора запроса можно визуально сконструировать запрос, то есть с
помощью мыши выбрать и перетащить нужные таблицы, поля, установить связи между
ними, условия отбора и т. д. После нажатия кнопки ОК конструктор запроса создаст
синтаксически правильный текст запроса.

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

Обработка результатов запроса с помощью конструктора запроса

", а пока

остановимся на общих принципах работы с конструктором запроса.

Чтобы открыть конструктор запроса, нужно перейти в модуль формы, обработки и т. п.,
вызвать правой кнопкой мыши контекстное меню и затем выбрать пункт Конструктор
запроса
 или Конструктор запроса с обработкой результата (рис. 2.1).


background image

Рис. 2.1. Вызов конструктора запроса

Или же можно выполнить команду главного меню конфигуратора Текст > Конструктор
запроса/Конструктор запроса с обработкой результата
.

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

Листинг 2.1. Заготовка для создания запроса

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

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

Создание простого запроса

Для начала создадим с помощью конструктора запроса запрос для отображения в


background image

порядке иерархии всех товаров из справочника Товары. Этот пример мы рассматривали в
разделе «

Как получить записи иерархической таблицы и расположить их в порядке

иерархии

» (листинг 2.2).

Листинг 2.2. Вывод записей справочника «Товары», расположенных в порядке иерархии

Теперь наша задача – получить аналогичный запрос с помощью конструктора запроса.

Итак, откроем нашу демонстрационную конфигурацию Язык запросов в режиме
Конфигуратор и откроем модуль формы обработки РаботаСЗапросами. Затем
создадим в тексте модуля заготовку, показанную в листинге 2.1, поместим курсор между
кавычек и вызовем из контекстного меню пункт Конструктор запроса. Подтвердим, что
мы хотим создать новый запрос. После этого откроется конструктор запроса (рис. 2.2).

Сначала мы попадаем на основную закладку конструктора Таблицы и поля. На этой
закладке в списке База данных можно выбрать реальные и виртуальные таблицы в
качестве источников запроса. Раскроем группу справочников, выберем таблицу Товары и
перенесем ее в список Таблицы. В этом списке можно выбрать нужные поля для
отображения в запросе. Раскроем структуру выбранной таблицы и перенесем в список
Поля поля КодНаименованиеРодительЭтоГруппа (рис. 2.2).

Рис. 2.2. Окно конструктора запроса

ПРИМЕЧАНИЕ


background image

Выделенные элементы можно перенести из одного списка в другой перетаскиванием
мышью или двойным щелчком на них. Либо можно использовать кнопки >, >>, <, <<.

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

Рис. 2.3. Текст запроса, созданный конструктором

Мы видим, что в запросе выбираются поля КодНаименованиеРодительЭтоГруппа
из справочника Товары. Таким образом, на закладке Таблицы и поля конструктора
запроса формируются основные предложения языка запросов ВЫБРАТЬИЗ.

Теперь перейдем на закладку конструктора запроса Объединения/Псевдонимы, чтобы
задать псевдонимы полей запроса. Зададим псевдоним КодТовара для поля Код (рис.
2.4).


background image

Рис. 2.4. Окно конструктора запроса

Нажмем кнопку Запрос и посмотрим, как изменился текст запроса (рис. 2.5).

Рис. 2.5. Текст запроса, созданный конструктором

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

В заключение перейдем на закладку конструктора запроса Порядок и зададим
упорядочивание записей результата запроса. Из списка полей запроса выберем поле
Наименование и установим тип упорядочивания – Иерархия (рис. 2.6).