22.01.2021 Сергей Пушкин 18309
Конструктор (построитель) запроса в 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 Управление предприятием 2.0»
ООО «Буровая сервисная компания «ГРАНД»

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

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

- Создание полноценной управленческой системы взамен существующих
- Внедрением подсистем «Нормативное планирования», «Мобильное АРМ», «Ре...

Внедрение ПП "1С:CRM ПРОФ" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

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

Внедренное типовое решение:
1С:CRM ПРОФ

- Управление отношениями с клиентами (CRM) ...

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

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

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

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

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

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

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

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

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

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

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и ИТ процессами
• Автоматизация бизнес-процессов
Управлени...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

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

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки спецификаций из Excell...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

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

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

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

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

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

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

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

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО "ДЕКОР"
ООО «ДЕКОР»

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

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

Управление персоналом и кадровый учет (HRM):
- Кадровый учет
- Расчет зарплаты
- Учет рабочего времени
Управление продажами...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

Внедренное типовое решение:
1С:Управление производственным предприятием

Автоматизация бизнес-процессов...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

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

Внедренное типовое решение:
1С:Управление производственным предприятием

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетность...

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

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

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

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