Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51780
Скачиваний: 8724
Глава 2. Работа с запросами во встроенном языке
Конструктор запроса
В первой главе мы познакомились с азами языка запросов, научились создавать
синтаксически правильные тексты запросов и выполнять их в консоли запросов. Для
решения небольших демонстрационных задач мы писали текст запросов вручную, в
специальном окне консоли запросов, и затем сразу же могли увидеть результат
выполнения запроса. На начальном этапе это было очень полезно, чтобы набраться
опыта при создании простых запросов и закрепить понимание пройденного материала.
Но в дальнейшем для решения реальных задач написание запросов вручную может быть
довольно утомительным. Кроме того, помимо знания всех синтаксических конструкций и
правил составления запросов, это потребует от разработчика знания имен таблиц языка
запросов, их полей и параметров, что потребует постоянного обращения к синтакс-
помощнику или встроенной справке.
Поэтому в платформе «1С:Предприятие» существуют инструменты для облегчения труда
разработчика при написании запросов – конструктор запроса и конструктор запроса с
обработкой результата.
С помощью конструктора запроса можно визуально сконструировать запрос, то есть с
помощью мыши выбрать и перетащить нужные таблицы, поля, установить связи между
ними, условия отбора и т. д. После нажатия кнопки ОК конструктор запроса создаст
синтаксически правильный текст запроса.
С помощью конструктора запроса с обработкой результата можно, помимо самого текста
запроса, создать готовый фрагмент кода для получения данных с помощью запроса и
вывода их, например, в табличный документ. Этот вопрос мы рассмотрим позже, в
разделе "
Обработка результатов запроса с помощью конструктора запроса
", а пока
остановимся на общих принципах работы с конструктором запроса.
Чтобы открыть конструктор запроса, нужно перейти в модуль формы, обработки и т. п.,
вызвать правой кнопкой мыши контекстное меню и затем выбрать пункт Конструктор
запроса или Конструктор запроса с обработкой результата (рис. 2.1).
Рис. 2.1. Вызов конструктора запроса
Или же можно выполнить команду главного меню конфигуратора Текст > Конструктор
запроса/Конструктор запроса с обработкой результата.
В случае, когда вызывается конструктор запроса без обработки результата, желательно
предварительно в тексте модуля сделать заготовку для создания запроса и вызвать
контекстное меню, поместив курсор между кавычек (листинг 2.1).
Листинг 2.1. Заготовка для создания запроса
Также конструктор запроса может быть вызван из схемы компоновки данных при создании
набора данных, источником которого является запрос к информационной базе, при
настройке свойств динамического списка, источником которого служит произвольный
запрос, и т. д.
Попробуем с помощью конструктора запроса создать текст запросов для нескольких
простых задач, используемых в первой главе. Мы не будем здесь объяснять, как и
почему применена та или иная конструкция языка запросов. На этих примерах мы просто
покажем, как создать аналогичный текст запроса не вручную, а с помощью конструктора.
Создание простого запроса
Для начала создадим с помощью конструктора запроса запрос для отображения в
порядке иерархии всех товаров из справочника Товары. Этот пример мы рассматривали в
разделе «
Как получить записи иерархической таблицы и расположить их в порядке
Листинг 2.2. Вывод записей справочника «Товары», расположенных в порядке иерархии
Теперь наша задача – получить аналогичный запрос с помощью конструктора запроса.
Итак, откроем нашу демонстрационную конфигурацию Язык запросов в режиме
Конфигуратор и откроем модуль формы обработки РаботаСЗапросами. Затем
создадим в тексте модуля заготовку, показанную в листинге 2.1, поместим курсор между
кавычек и вызовем из контекстного меню пункт Конструктор запроса. Подтвердим, что
мы хотим создать новый запрос. После этого откроется конструктор запроса (рис. 2.2).
Сначала мы попадаем на основную закладку конструктора Таблицы и поля. На этой
закладке в списке База данных можно выбрать реальные и виртуальные таблицы в
качестве источников запроса. Раскроем группу справочников, выберем таблицу Товары и
перенесем ее в список Таблицы. В этом списке можно выбрать нужные поля для
отображения в запросе. Раскроем структуру выбранной таблицы и перенесем в список
Поля поля Код, Наименование, Родитель, ЭтоГруппа (рис. 2.2).
Рис. 2.2. Окно конструктора запроса
ПРИМЕЧАНИЕ
Выделенные элементы можно перенести из одного списка в другой перетаскиванием
мышью или двойным щелчком на них. Либо можно использовать кнопки >, >>, <, <<.
На любом этапе создания запроса, не выходя из конструктора запроса (не нажимая ОК),
можно увидеть, как изменяется текст запроса в процессе работы. Для этого нужно
нажать кнопку Запрос в левом нижнем углу окна конструктора запроса. Нажмем эту
кнопку и посмотрим, какой текст запроса создал конструктор (рис. 2.3).
Рис. 2.3. Текст запроса, созданный конструктором
Мы видим, что в запросе выбираются поля Код, Наименование, Родитель, ЭтоГруппа
из справочника Товары. Таким образом, на закладке Таблицы и поля конструктора
запроса формируются основные предложения языка запросов ВЫБРАТЬ, ИЗ.
Теперь перейдем на закладку конструктора запроса Объединения/Псевдонимы, чтобы
задать псевдонимы полей запроса. Зададим псевдоним КодТовара для поля Код (рис.
2.4).
Рис. 2.4. Окно конструктора запроса
Нажмем кнопку Запрос и посмотрим, как изменился текст запроса (рис. 2.5).
Рис. 2.5. Текст запроса, созданный конструктором
Мы видим, что к тексту запроса конструктор добавляет псевдонимы полей и ключевое
слово КАК.
В заключение перейдем на закладку конструктора запроса Порядок и зададим
упорядочивание записей результата запроса. Из списка полей запроса выберем поле
Наименование и установим тип упорядочивания – Иерархия (рис. 2.6).