Для программиста Запросы 1с 8 один из главных инструментов разработки. Рассмотрим основы программной работы с ними.
Запросы 1с 8 — программное создание
- Создание запроса 1с 8. Для начала работы с запросом создадим переменную типа Запрос:
Запрос = Новый Запрос;
- Написание текста запроса. У созданной выше переменной есть строковое свойство Текст, именно оно содержит в себе текст запроса. Текст запроса можно писать вручную или используя Конструктор запроса. Для того что бы начать писать запрос при помощи конструктора создадим в модуле следующую строку:
Запрос.Текст = "";
Установим курсор между кавычками и вызовем контекстное меню нажатием правой кнопки мыши. В меню выберем пункт Конструктор запроса. Созданный при помощи конструктора текст запроса будет выглядеть следующим образом (пример):
Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Родитель = &Группа";
Чтобы отредактировать текст запроса установим курсор в любое место в тексте и вызовем конструктор приведенным выше способом.
- Передача параметров. У переменной типа Запрос есть свойство Параметры. В нем хранится структура со всеми параметрами переданными в запрос. Для того, чтобы передать параметр в данную структуру используем метод УстановитьПараметр(<Имя>, <Значение>). Где Имя — имя параметра в тексте запроса, Значение — передаваемое значение:
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Товары"); Запрос.УстановитьПараметр("Группа", Номенклатура);
Выполнение запроса 1с 8 и работа с полученными данными
- Выполнение запроса. После того, как написан текст запроса и в него переданы все необходимые параметры, запрос необходимо выполнить при помощи метода Выполнить().
Результат = Запрос.Выполнить();
Полученный таким образом результат запроса 1с 8 можно:
- Выгрузить в таблицу значений при помощи метода Выгрузить().
ТаблицаРезультат = Результат.Выгрузить();
Таблицу значений можно обойти при помощи цикла Для Каждого.
Для Каждого СтрокаТаблицы Из ТаблицаРезультат Цикл //Код для обработки строки КонецЦикла;
- Создать выборку результатов запроса при помощи метода Выбрать().
Выборка = Результат.Выбрать();
Для перемещения между записями выборки используется метод Следующий(). Для того чтобы обойти всю выборку воспользуемся циклом Пока.
Пока Выборка.Следующий() Цикл //Код для обработки строки выборки КонецЦикла;
И в выборке и в выгрузке результатов запроса можно узнать количество содержащихся в них строк при помощи метода Количество().
Если Не Выборка.Количество() = 0 Тогда //Ваш код КонецЕсли;
- Выгрузить в таблицу значений при помощи метода Выгрузить().
Если вы еще не разобрались с главным оператором языка запросов — ВЫБРАТЬ, то прочтите статью: Язык запросов 1с — оператор Выбрать
Научитесь пользоваться конструктором запросов: Конструктор запросов 1С — обучение на примерах
Добавить комментарий