Конструктор запросов схемы компоновки данных. Работа с конструктором запроса с выводом в табличный документ Работа с консолью запросов
Рассмотрим как можно соединить эти две таблицы по полю КодТовара
с использованием
конструктора запросов (код по формированию временных таблиц для примера приводить
не буду. Его можно взять по вышеуказанной ссылке).
Открываем окно конструктора, встаем на закладку «Таблицы и поля»
, в раздел
«Таблицы»
выбираем обе наши таблицы, а в раздел «Поля»
-
те поля из обоих таблиц, которые мы хотим видеть в результате выполнения запроса.
Переходим на закладку «Связи»
. Добавляем новую строку. В поле Таблица1
из выпадающего списка выбираем таблицу с товарами, а в поле Таблица2
Таблицу
со странами.
Для Таблицы1
устанавливаем флажок Все
. Для
Tаблицы2
этот флажок не ставим. Это означает, что из Таблицы1
будут выбраны все записи, а из Таблицы2
только те для которых выполняется
условие соединения, то есть при такой комбинации флажков мы получаем
ЛЕВОЕ СОЕДИНЕНИЕ
. Далее необходимо заполнить Условие связи
.
Здесь мы выбираем поля таблиц из выпадающих списков и знак сравнения также из выпадающего
списка.
В результате такого соединения получим следующий текст запроса:
ВЫБРАТЬ ВТ_Товар.КодТовара, ВТ_Товар.Наименование, ВТ_Страна.Страна ИЗ ВТ_Товар КАК ВТ_Товар ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Страна КАК ВТ_Страна ПО ВТ_Товар.КодТовара = ВТ_Страна.КодТовара
Теперь рассмотрим подробнее некоторые моменты.
Давайте попробуем поменять местами флажок Все
.
Казалось бы в итоге должно получиться ПРАВОЕ СОЕДИНЕНИЕ
, но если мы
посмотрим на текст запроса, сформированный конструктором, то увидим, что таблицы
поменялись местами, а соединение все равно осталось левым:
ВЫБРАТЬ ВТ_Товар.КодТовара, ВТ_Товар.Наименование, ВТ_Страна.Страна ИЗ ВТ_Страна КАК ВТ_Страна ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Товар КАК ВТ_Товар ПО ВТ_Товар.КодТовара = ВТ_Страна.КодТовара
Посмотрим, что будет, если снимем оба флажка
В итоге получаем внутреннее соединение.
ВЫБРАТЬ ВТ_Товар.КодТовара, ВТ_Товар.Наименование, ВТ_Страна.Страна ИЗ ВТ_Товар КАК ВТ_Товар ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Страна КАК ВТ_Страна ПО ВТ_Товар.КодТовара = ВТ_Страна.КодТовара
И наконец, если установлены оба флажка
получаем полное соединение
ВЫБРАТЬ ВТ_Товар.КодТовара, ВТ_Товар.Наименование, ВТ_Страна.Страна ИЗ ВТ_Товар КАК ВТ_Товар ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Страна КАК ВТ_Страна ПО ВТ_Товар.КодТовара = ВТ_Страна.КодТовара
Можно задавать несколько строк на закладке Связи
. В этом случае несколько
строк соединяются по условию И
. Причем строки не обязательно
каждый раз вбивать заново. Их можно копировать с использованием клавиши F9
.
А в новой строке менять только условие соединения. Это существенно ускоряет разработку.
Также в условии связи необязательно использовать только предопределенные поля из
выпадающих списков. Можно использовать произвольное выражение, удовлентворяющее
языку запросов 1С. Для этого необходимо установить флажок Произвольное
и вписать условие непосредственно в поле, либо открыть вспомогательное окно, в
котором можно воспользоваться шаблонами с функциями языка запросов.
Конечно на практике встречаются гораздо более сложные запросы, где соединяются
несколько таблиц с разнообразными связями между собой. Но в конструкторе запросов
можно воспроизвести соединения любой сложности.
Одним из самых мощных инструментов 1С Предприятия 8, без сомнения, является Конструктор запросов. Конструктор является визуальным средством для работы с запросами на языке 1С. Но конструктор имеет один большой недостаток – он не показывает результат выполнения запросов. Данный недостаток особенно ощущается начинающими разработчиками прикладных решений на платформе 1С:Предприятие 8.3 и 8.2.
Кроме того, даже опытные программисты 1С нередко сталкиваются с ситуацией, когда необходимо сделать «разовый» анализ данных информационной базы в различных срезах, а писать ради такого «разового вывода» полноценный отчет не хочется.
Для всех этих и многих других случаев мы рады вам предложить внешнюю обработку Консоль запросов с возможностью обработки результатов для 1С 8.3 и 1С 8.2 !
Основные возможности Консоли запросов для 1С 8.3 и 1С 8.2
:
Универсальная обработка, запускается на любой конфигурации платформ 1С: Предприятие 8.1 – 8.3;
- запускается в режиме 1С:Предприятие;
- запрос можно писать вручную, а можно вызвать Конструктор запроса;
- показывает результат выполнения запроса;
- можно указывать параметры отчета непосредственно в Консоли запросов;
- умеет сохранять и загружать файлы запросов.
Для запуска Консоли запросов вам необходимо запустить вашу конфигурацию в режиме 1С:Предприятие и открыть внешнюю обработку Консоль запросов как любой другой файл, хранящийся на диске. Такая обработка будет работать точно так же, как если бы она входила в состав прикладного решения.
Внешняя обработка Консоль запросовповторяет привычный интерфейс и большинство функциональных возможностей стандартного инструментария составления запросов системы 1С:Предприятия 8.3 и 8.2. Она также позволяет получать результаты запросов, пакетных запросов и временных таблиц.
Консоль запросов исполняется как в клиент-серверном, так и в файл-серверном режиме работы системы, как под толстым, так и под тонким клиентом! В Консоль запросов интегрирован стандартный Конструктор запроса, вызывающийся через контекстное меню в поле текста запроса.
ВАЖНО! Конструктор запроса в тонком клиенте не работает, данный пункт меню открытия Конструктора недоступен. В толстом клиенте Конструктор запроса доступен!
В тонком клиенте мы можем только писать запросы руками, все остальные функции работают без изменений.
Консолью запросов очень удобно пользоваться, когда необходимо отладить какой-либо сложный , либо оперативно получить выборку определенных данных.
В интернете вы можете найти много различных консолей. Для обычных и управляемых форм обычно это совершенно разные консоли. По данной вы можете скачать универсальную консоль запросов 1С 8.3 и 8.2, которая будет работать в обоих случаях. Только учтите, что консоль на управляемом интерфейсе у вас откроется только в толстом клиенте.
Работа с консолью запросов
В программе 1С консоль запросов открывается точно так же, как и любая внешняя обработка: меню «Файл» — «Открыть», либо при помощи комбинации горячих клавиш «Ctrl + O». При частом использовании ее можно добавить во внешние обработки самой информационной базы.
В левой части консоли запроса представлен сам список ваших запросов. Это позволяет вам хранить не один запрос, а сразу несколько. Дерево запросов имеет иерархическую структуру, что очень удобно для их группировки.
Нажав на кнопку «Добавить» вы можете добавить новый запрос, самостоятельно задав ему имя. Так же встроенный функционал позволяет создавать запросы с копированием, перемещать вверх или вниз по списку и многое другое.
Сам текст запроса отображается в правой части формы обработки. Его можно написать вручную, либо при помощи конструктора запросов. Конструктор запросов работает только в толстом клиенте.
Правее кнопки конструктора находится кнопка «Вставить операторы запроса». Она сразу добавит пустую конструкцию запроса с условием, группировкой, порядком и итогами.
Правее расположены очень полезные кнопки, которые помогут, если данный запрос вы используете при разработке решений на 1С.
Кнопка позволяет преобразовать написанный вами запрос в текст. В нашем случае это будет выглядеть так, как показано на рисунке ниже.
Сами запросы вы можете сохранять в файл либо подгружать из него. Это очень удобно для возможности дальнейшего использования.
Перед непосредственным выполнением запроса необходимо установить его входные параметры (при их наличии), далее нажать на кнопку «Выполнить запрос». Так же здесь есть возможность выполнять запросы не целиком, а отдельно какой-либо пакет.
Режим просмотра определяет то, как будет выведен результат запроса: списком, иерархическим списком, либо деревом.
Результат выполнения будет отображен в самом низу консоли запроса. Так же там отображается количество полученных строк и время выполнения. При необходимости вы можете перемещать строки результата запроса.
Очень часто пользователи просят сделать выборку каких-либо данных и сохранить их в Excel. Это может понадобиться и вам. Для выполнения задачи вам всего-навсего достаточно в меню «Еще» выбрать пункт «Вывести список». Программа предложит отметить необходимые колонки.
Кроме задания перечня колонок для вывода тут так же можно и указать конкретные строки. Это реализуется путем выделения строк в самом запросе. Далее в форме выбора колонок достаточно установить флаг в настройке «Только выделенные».
В нашем примере мы вывели все данные результата запроса. Сохранить их во внешний файл, можно скопировав из открывшегося табличного документа, либо при помощи комбинации горячих клавиш «Ctrl+O». Вариантов форматов для сохранения много, мы выбрали «*. xlsx».
Как видите, работа в консоли запросов очень удобна и полезна, поэтому настоятельно рекомендуем ее скачать и применять на практике.
Конструктор запроса - это один из инструментов разработки. Он позволяет составить текст запроса на языке запросов исключительно визуальными средствами.
С помощью кнопок Далее и Назад можно перемещаться по закладкам конструктора и указывать, какие данные должны присутствовать в результате запроса, как они связаны, сгруппированы, какие итоги следует рассчитать, работать с временными таблицами, редактировать пакет запросов:
Результатом работы конструктора будет являться синтаксически правильный текст запроса. Таким образом, разработчик может составить работоспособный запрос, даже не владея синтаксисом языка запросов - необходимые синтаксические конструкции конструктор сгенерирует автоматически. Готовый текст запроса может быть сразу же вставлен в текст модуля или скопирован в буфер обмена.
Кроме этого конструктор запросов позволяет редактировать уже имеющийся в программе текст запроса. Для этого достаточно установить курсор внутри существующего текста запроса и вызвать конструктор. Имеющийся текст запроса будет проанализирован и представлен в конструкторе в виде соответствующих выбранных полей базы данных и набора заданных связей, группировок, условий и т.д.
Конструктор запроса имеет достаточно простой, интуитивно понятный интерфейс. Тем не менее рассмотрим применение конструктора запроса подробнее.
Запуск конструктора текста запроса производится контекстным меню (правой кнопкой мыши) в нужном месте программного кода.
Рассмотрим каждую вкладку конструктора подробнее. Исключение — вкладка Построитель, это тема для отдельного разговора.
Вкладка Таблицы и поля
На этой вкладке указывается источник данных и поля, которые необходимо выводить в отчет. По сути, тут описываются конструкции ВЫБРАТЬ … ИЗ.
В качестве источника может служить физическая таблица базы данных, виртуальная таблица регистров, временные таблицы, и т.д.
В контекстном меню виртуальных таблиц можно задать параметры этих таблиц:
Вкладка Связи
Вкладка служит для описания соединений нескольких таблиц, создает конструкции со словом СОЕДИНЕНИЕ.
Вкладка Группировка
На данной вкладке система позволяет группировать и суммировать нужные поля результата таблицы. Описывается использование конструкций СГРУППИРОВАТЬ ПО, СУММА, МИНИМУМ, СРЕДНЕЕ, МАКСИМУМ, КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗЛИЧНЫХ.
Получите 267 видеоуроков по 1С бесплатно:
Вкладка Условия
Отвечает за всё, что идёт в тексте запроса после конструкции ГДЕ, т.е. за все условия, накладываемые на получаемые данные.
Вкладка Дополнительно
Вкладка Дополнительно изобилует всевозможными параметрами, которые являются очень важными. Рассмотрим каждое из свойств.
Группировка Выборка записей :
- Первые N — параметр, возвращающий в запрос только N записей (оператор ПЕРВЫЕ)
- Без повторяющихся — обеспечивает уникальность полученных записей (оператор РАЗЛИЧНЫЕ )
- Разрешенные — позволяет выбирать только те записи, которые позволяет выбрать система с учетом (конструкция РАЗРЕШЕННЫЕ )
Группировка Тип запроса определяет, каким будет тип запроса: выборка данных, создание временных таблицы или же уничтожение временной таблицы.
Ниже существует флаг Блокировать полученные данные для последующего изменения . Он позволяет включить возможность установки блокировки данных, которая обеспечивает сохранность данных от момента их чтения до изменения (актуально только для Автоматического режима блокировок, конструкция ).
Вкладка Объединения/Псевдонимы
На этой вкладке конструктора запросов устанавливается возможность объединения разных таблиц и псевдонимы (конструкция КАК). В левой части указываются таблицы, если установить флаги напротив таблицы, будут использоваться конструкции ОБЪЕДИНИТЬ, иначе — ОБЪЕДИНИТЬ ВСЕ (отличия двух способов ). В правой части указываются соответствия полей в разных таблицах, если соответствие не указано, запрос будет возвращать NULL.
Вкладка Порядок
Здесь указывается порядок сортировки значений (УПОРЯДОЧИТЬ ПО) — по убыванию (УБЫВ) или возрастанию(ВОЗР).
Также есть интересный флаг — Автоупорядочивание (в запросе — АВТОУПОРЯДОЧИВАНИЕ). По умолчанию, система 1С 8.3 выводит данные в «хаотичном» порядке. Если установить этот флаг, система будет сортировать данные по внутренним данным.
Вкладка Пакет запросов
На вкладке конструктора запросов можно , а также использовать её в роли навигации. В тексте запроса пакеты разделяются символом «;»(точка с запятой).
Кнопка «Запрос» в конструкторе запросов
В левом нижнем углу конструктора запроса есть кнопка Запрос, с помощью которого можно в любой момент просмотреть текст запроса:
В данном окне можно внести коррективы в запрос и выполнить его.