Запрос представляет собой агрегатный объект встроенного языка, способный получить информацию из базы данных и сохранять ее для дальнейшей работы в памяти ПК в табличном виде. Кроме того, запрос позволяет использовать агрегатные функции, облегчающие процесс расчета промежуточных итогов при построении отчетов.Работа с запросами на встроенном языке программирования состоит из следующих этапов:
- Создание объекта
Запрос
- Инициализация текст запроса и его выполнение
- Обход результата запроса и его обработка
- Уничтожение объекта Запрос
Рассмотрим каждый из этапов подробнее:
Создание объекта Запрос
Как и все агрегатные объекты объект Запрос создается с помощью функции СоздатьОбъект():
Запрос = СоздатьОбъект("Запрос");
Инициализация текста запроса
Инициализация текста запроса его выполнение производятся одним методом: Выполнить():
Запрос.Выполнить(ТекстЗапроса);
Обход результата запроса и его обработка
После выполнения запроса переменная содержит выборку данных, годную для обработки.
Если в тексте запроса использовалась группировка, можно организовать обход с помощью метода Группировка():
Пока Запрос.Группировка(1) = 1 Цикл //действия с результатом КонецЦикла;
Если в тексте запроса группировки не использовались, то доступна только выгрузка результата в таблицу значений:
Запрос.Выгрузить(тзЗапрос);
Уничтожение объекта
Уничтожать объект необходимо для освобождения оперативной памяти от считанных данных. Делается это элементарной очисткой значения переменной:
Запрос = "";
Методы объекта Запрос
Выполнить() | Формирует выборку данных на основе текста запроса |
Группировка() | Организует последовательный обход полученной выборки данных |
Получить() | Осуществляет прямое позиционирование на запись в выборке |
ВНачалоВыборки() | Осуществляет позиционирование на самой первой записи выборки данных |
Выгрузить() | Производит выгрузку результата запроса в таблицу значений |
НачалоПериода() | Возвращает дату начала периода запроса |
КонецПериода() | Возвращает дату окончания периода запроса |
ЗначениеУпорядочивания() | Возвращает значение по которому была упорядочена текущая запись в выборке данных |
ЗначениеАтрибута() | Возвращает значение произвольного атрибута выборки |
ЭтоГруппа() | Выполняет проверку, является ли текущее значение группировки группой справочника |
* — в таблице перечислены не все методы объекта Запрос. |