22.01.2021 Сергей Пушкин 18290
Конструктор (построитель) запроса в 1С

Содержание:

1.       Что такое построитель запросов и зачем он нужен?

2.       Как работает конструктор запросов в 1С?

3.       Итоги  


1.      Что такое построитель запросов и зачем он нужен?


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


Запросы применяются для быстрого получения необходимых данных из объектов информационной базы 1С, а конструктор запроса в 1С помогает описать правила получения этих данных технически и синтаксически правильно.  


2.      Как работает конструктор запросов в 1С?


Единственным обязательным элементом любого запроса к базе данных является предложение «ВЫБРАТЬ». Именно в нем перечисляются необходимые поля выборки, которые необходимо получить в составе результата запроса.


Язык запросов требует следования определенным правилам написания, чтобы текст запроса был правильно интерпретирован. С консолью запросов эти правила знать совершенно необязательно.


Пример 1. Создание запроса при помощи конструктора


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


1. Раскрыть справочники, найти справочник «Валюты», перетащить в центральную панель конструктора (или дважды щелкнуть по нему). В результате выбранный справочник разместится в центральной панели.


Перемещение справочника в построителе запросов

Перемещение справочника в построителе запросов


2. Раскрыть выбранный справочник и так же перетащить необходимые поля (Ссылка «Наименование») в правую панель окна конструктора запросов. В результате в правой панели разместятся эти два выбранных реквизита справочника.


справочник в построителе запросов

Реквизиты справочника в окне конструктора запросов


Жмем «ОК» и вуаля – текст запроса готов! Построитель запросов сделает все остальное. В результате будет получен правильно написанный текст запроса, который можно использовать для получения данных, например, в консоли запросов или для создания отчета.


"ВЫБРАТЬ

|    Валюты.Ссылка КАК Ссылка,

|    Валюты.Наименование КАК Наименование

|ИЗ

|    Справочник.Валюты КАК Валюты"

* Символ «|» означает перенос строки текста, заключенного в кавычки, т.е. информирует о том, что на переводе строки этот текст не прерывается, а имеет продолжение.


Как видно из примера, конструктор самостоятельно подготовил текст и расставил все необходимые знаки и псевдонимы.


Пример 2. Добавление в запрос условий


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


1. Перейти на вкладку «Условия». В левой панели окна конструктора запросов будут размещены объекты, участвующие в выборке.


Вкладка условия построителя запросов

Вкладка условия построителя запросов


2. Раскрыть выбранный справочник – перетащить в правую панель реквизит «Ссылка» (или два раза щелкнуть по этому реквизиту). В результате в правой панели будет размещен выбранный реквизит, автоматически указаны вид сравнения «=» и имя параметра.


Окно конструктора запросов с выбранным реквизитом

Окно конструктора запросов с выбранным реквизитом


3. Так как по нашему условию требуется выбрать все валюты за исключением одной, мы должны поменять вид сравнения на «<>».


Окно конструктора запросов

Замена вида сравнения в построителе запросов


4. Нажимаем «Ок» – получаем готовый тест запроса.

"ВЫБРАТЬ

|    Валюты.Ссылка КАК Ссылка,

|    Валюты.Наименование КАК Наименование

|ИЗ

|    Справочник.Валюты КАК Валюты

|ГДЕ

|    Валюты.Ссылка <> &Ссылка"

 

Здесь важно, что добавилось предложение «ГДЕ», в котором указано условие, по которому необходимо отобрать элементы справочника «Валюты». Указав в качестве значения параметра ссылку на валюту, которая в результате не требуется, можно будет получить все остальные валюты. Так происходит добавление условий в конструктор запросов.


Пример 3. Добавление группировок в конструкторе запросов, определение своего порядка следования полей в выборке и псевдонимов полей в результате.


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


1. Убираем из выборки поле «Наименование», добавляем в выборку поле «СпособУстановкиКурса».


Добавления поля в окно конструктора запросов


Добавления поля в окно конструктора запросов


2. Переходим на вкладку «Группировка», перетаскиваем «Валюты.СпособУстановкиКурса» в правую верхнюю панель, а «Валюты.Ссылка» в правую нижнюю панель. Конструктор самостоятельно укажет агрегатную функцию в запросе «Количество различных».


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


Агрегатная функция в запросе «Количество различных»


3. Так как мы добавили способ установки курса после того, как ссылка уже фигурировала в выборке, после нажатия «Ок» порядок следования полей будет таким: «Ссылка» – «СпособУстановкиКурса». Нам удобнее, чтобы группировочное поле (наш показатель) располагалось первым по очереди, а его значение вторым. Поэтому, переходим на вкладку «Объединения/Псевдонимы».


Объединения/Псевдонимы в построителе запросов


Вкладка «Объединения/Псевдонимы» в построителе запросов


4. Синей стрелкой перемещаем поле «Ссылка» вниз под поле «СпособУстановкиКурса». А имена полей меняем на те, которые будут более наглядными: «СпособУстановкиКурса» оставляем (имя показателя соответствует тому, что мы в итоге хотим получить). «Ссылка» меняем на «Количество».


Изменение имен полей при использовании конструктора запросов

Изменение имен полей при использовании конструктора запросов


* Жирный шрифт означает, что для поля задан псевдоним.


5. Нажимаем «Ок» – получаем готовый тест запроса.

"ВЫБРАТЬ

|    Валюты.СпособУстановкиКурса КАК СпособУстановкиКурса,

|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюты.Ссылка) КАК Количество

|ИЗ

|    Справочник.Валюты КАК Валюты

|ГДЕ

|    Валюты.Ссылка <> &Ссылка

|

|СГРУППИРОВАТЬ ПО

|    Валюты.СпособУстановкиКурса"

 

Следует отметить:

· Порядок следования полей стал такой, какой нам нужен. Сначала идет показатель, затем его значение.

· Второе поле получило псевдоним «Количество» – это имя следует за «КАК».

· В тексте запроса появилась агрегатная функция «КОЛИЧЕСТВО(РАЗЛИЧНЫЕ»

· В тексте запроса появилось предложение «СГРУППИРОВАТЬ ПО» для выбранного нами поля.


Пример 4. Добавление нестандартного условия через конструктор запросов.


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


1. Из созданного ранее текста запроса в поле конструктора запросов копируем агрегатную функцию в запросе. Полностью всю конструкцию до псевдонима: «КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюты.Ссылка)».


2. Переходим в конструкторе на вкладку «Условия».


3. Нажимаем «+» (Добавить) в правой панели, у добавленного поля устанавливаем флаг в колонке «Произвольное», активируем содержимое поля «Условие» двойным щелчком, вставляем скопированный текст «КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюты.Ссылка)» и дополняем его следующим текстом: «=1».


поля при использовании конструктора запросов

«КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюты.Ссылка)» в построителе запроса


4. Нажимаем «Ок» и смотрим, что получилось.


"ВЫБРАТЬ

|    Валюты.СпособУстановкиКурса КАК СпособУстановкиКурса,

|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюты.Ссылка) КАК Количество

|ИЗ

|    Справочник.Валюты КАК Валюты

|ГДЕ

|    Валюты.Ссылка <> &Ссылка

|

|СГРУППИРОВАТЬ ПО

|    Валюты.СпособУстановкиКурса

|

|ИМЕЮЩИЕ

|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюты.Ссылка) = 1"

 

В запросе появилось еще одно предложение «ИМЕЮЩИЕ». Смысл его заключается в том, что условие на выборку накладывается уже после выполнения агрегатной функции. Что нам и требовалось.  


3.   Итоги


Построитель запросов в 1С – очень мощный инструмент с большим количеством возможностей. В нем можно оформлять вложенные запросы, связи таблиц, создавать временные таблицы, уничтожать временные таблицы и выполнить много других задач, связанных с созданием запросов с помощью конструктора. И свое предназначение он полностью оправдывает – он остерегает от ошибок в синтаксисе запросов и генерирует правильные по структуре запросы, которые в чистом виде можно использовать для получения необходимых данных из базы. В то же время оптимальность получения данных он не контролирует, поэтому, важно помимо знакомства с конструктором, дополнительно ознакомиться хотя бы с некоторыми основными правилами написания запросов.


Специалист компании «Кодерлайн»

Сергей Пушкин

Наши проекты

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление складскими запасами ...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Бухгалтерский учет
- Расчет зарплаты и кадровый учет
- Налоговый учет ...

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

Внедренное типовое решение:
1С:ERP. Управление холдингом

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ · Управление цепочками поставок · Управление договорами, включа...

Оптимизация производительности системы
ЗАО ИД «Комсомольская правда»

Отрасль:
Медиа

Внедренное типовое решение:
1С:Бухгалтерия

- Оптимизация производительности системы, в том числе сервера Postgre. ...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Управление холдингом 8

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Учет спецодежды и спецоснастки
Управление отношениями с кли...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление складскими запасами;
- Логистика адресного склада;
- Оф...

Автоматизация кадрового учета на базе «1С:ERP Управление предприятием 2.0»
Автопредприятие ПАО «Газпром»

Отрасль:
Транспорт

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Настройка подсистемы кадрового учета;
- Перенос персональных данных;
- Заполнение НСИ и классификаторов. ...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-процессов Анализ деятельности в разрезе проектов Планирование проектов У...

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

Отрасль:
Нефтесервис

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конфигурацию «Koderline: Управление проектами строительства скважин»...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Бухгалтерия КОРП

Бухгалтерский учет Производственные операции Регламентированная отчетность Учет в обособленных подразделениях Налоговый учет ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение