Язык запросов – быстро и легко! Конструктор запросов.

konstruktor_zaprosa_1s_8.3Запросы в 1С – эффективный способ получения данных в v8 известного программного продукта. Получить данные можно не только в удобном виде, но и в короткий срок. Оптимизация – один из способов улучшения показателя быстродействия обработки запросов в системе. Удобно то, что язык запросов 1С поддерживает и латиницу, и кириллицу.

Небольшие профессиональные хитрости языка запросов

Запрос в системе пишется на специальным языке, а отлаживать его параметры можно с использованием консоли в 1С. Ключевым словом в языке запросов является «ВЫБРАТЬ».

01

В сочетании с конструкцией ВЫБРАТЬ могут выступать конструкции:

  • «ДЛЯ ИЗМЕНЕНИЯ» — на срок выполнения процедуры транзакции все записи таблицы блокируются;
  • «РАЗЛИЧНЫЕ» — в результате обработки запроса не должно быть одинаковых строк;
  • «РАЗРЕШЕННЫЕ» — отбор, согласно которому текущий пользователь получит только ту информацию, на которую у него есть пользовательские права;
  • «ПЕРВЫЕ 3 (или любое значение n) – на языке запросов это означает, что система сделает отбор по первым 3-м записям.

Грамотный запрос – эффективная оптимизация работы

Программисты знают, что в программе 1С v8 получить актуальные данные можно двумя действенными методами:

  • Объектный вариант получения информации;
  • Табличный способ извлечения данных.

Объектная модель используется тогда, когда цель – получить простой набор данных простым набором кода. Язык запросов в 1С работает для всех случаев, в этом его универсальность. Но неграмотно созданный запрос ухудшает быстродействие и не всегда даёт возможность получить корректные данные. Но чтобы быть хорошим программистом в 1С недостаточно изучить язык запросов, нужно научиться грамотно применять его правила.

Оптимальный запрос, с чего начинать новичкам в 1С

Ещё немного о системе базовых конструкций на языке 1С, к примеру, имеем таблицу данных:

Таблица «Номенклатура».

Код Номенклатура Сорт
00001 Яблоки сезонные
00002 Груши дюшес
00003 Лимоны мейер

Задача: получить данные по столбцам Код и Сорт в табличном виде.

На языке запросов это выглядит следующим образом:

Запрос.Текст = »
|ВЫБРАТЬ
|    Номенклатура.Код,
|    Номенклатура.Сорт
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура»;

 

И получим следующее:

Код Сорт
00001 сезонные
00002 дюшес
00003 мейер

 

Для тех, у кого конструкции базового уровня языка запросов не вызывают сложностей, имеет смысл переходить к группировке. Здесь ключевой будет конструкция «СГРУППИРОВАТЬ ПО», которая поможет выполнить группировку идентичных полей базы данных. Фактически способ группировки сводит поля с идентичной информацией в одно. В результативной таблице получается меньше строк, что удобно и для текущей деятельности, и для анализа. Но важно, чтобы предварительно все поля базы данных имели разбивку: группируем, не группируем.

Рассмотрим конструкцию «СГРУППИРОВАТЬ ПО» на примере.

Дано:

Товар Склад Количество
Мыло Основной 1 520
Порошок Основной  750
Шампунь Основной 830
Паста Оптовый 17
Порошок Оптовый 2 586
Шампунь Оптовый 22

 

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

Чтобы узнать, сколько имеется товара без учёта склада, нужно:

Запрос.Текст = »
|ВЫБРАТЬ
|    Товары.Товар,
|    СУММА(Товары.Количество) КАК Количество
|ИЗ
|    Справочник.Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
|    Товары.Товар»;

 

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

В результате получим таблицу со следующей информацией:

Товар Количество
Мыло 1 520
Паста 17
Порошок 3 336
Шампунь 852

 

Специальная обработка «Консоль запроса» в v8.1/8.2/8.3 позволяет осуществлять запуск в режиме Предприятия и формулировать сами запросы в ручном режиме или через вызов функции через консоль. Предварительно можно уже оценить, каким будет итог выполнения, файлы можно сохранять.