Запросы в 1С – эффективный способ получения данных в v8 известного программного продукта. Получить данные можно не только в удобном виде, но и в короткий срок. Оптимизация – один из способов улучшения показателя быстродействия обработки запросов в системе. Удобно то, что язык запросов 1С поддерживает и латиницу, и кириллицу.
Небольшие профессиональные хитрости языка запросов
Запрос в системе пишется на специальным языке, а отлаживать его параметры можно с использованием консоли в 1С. Ключевым словом в языке запросов является «ВЫБРАТЬ».
В сочетании с конструкцией ВЫБРАТЬ могут выступать конструкции:
- «ДЛЯ ИЗМЕНЕНИЯ» — на срок выполнения процедуры транзакции все записи таблицы блокируются;
- «РАЗЛИЧНЫЕ» — в результате обработки запроса не должно быть одинаковых строк;
- «РАЗРЕШЕННЫЕ» — отбор, согласно которому текущий пользователь получит только ту информацию, на которую у него есть пользовательские права;
- «ПЕРВЫЕ 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 позволяет осуществлять запуск в режиме Предприятия и формулировать сами запросы в ручном режиме или через вызов функции через консоль. Предварительно можно уже оценить, каким будет итог выполнения, файлы можно сохранять.
Свежие комментарии