Основные объекты: Запросы. Часть 4. Запросы с параметрами
В системе 1С запросу можно передавать необходимые пользователю параметры. Чаще всего такими параметрами является период расчета (начало и конец периода).
Рассмотрим подробнее шаблон кода запроса с параметром, который нам рекомендует система 1С (Сервис – Шаблоны текста – Прочие – Запрос с параметром) и сравним его с шаблоном запроса, описанным в предыдущем разделе:
Запрос = Новый Запрос;
Запрос.Текст = "<?"", ТекстЗапроса>";
Нетрудно видеть, что шаблон запроса с параметром отличается от шаблона запроса без параметра строкой передачи параметра в запрос (она также выделена в тексте шаблона красным цветом):
Запрос.УстановитьПараметр("<?>", );
Рассмотрим практический пример запроса с параметрами из книги С.А. Митичкина “Разработка в системе "1С:Предприятие 8.0"” (М.: ООО “1С-Паблишинг”, 2003) (особенности кода, связанные с параметрами запроса выделены красным цветом):
//создание объекта Запрос с текстом запроса
Запрос = Новый Запрос("Выбрать Наименование, Цена
Попробуем в нашей информационной базе сформировать простой пример запроса с одним параметром (параметр будет передавать запросу значение флажка, задающего включение в перечень номенклатуры названий групп товаров). В предыдущих разделах мы сформировали такой запрос:
ВЫБРАТЬ
Немного изменим этот запрос:
ВЫБРАТЬ
Если параметр &ВключитьГруппы имеет значение ИСТИНА, то наименования групп товаров включаются в перечень номенклатуры. Если же параметр &ВключитьГруппы имеет значение ЛОЖЬ, то наименования групп товаров не включаются в указанный перечень.
Кроме того, добавим в процедуру КнопкаСформироватьНажатие оператор установки параметра запроса:
Запрос.УстановитьПараметр("ВключитьГруппы",
Полный текст процедуры КнопкаСформироватьНажатие теперь будет выглядеть так:
Процедура КнопкаСформироватьНажатие(Кнопка)
Теперь создадим условия для ввода пользователем значения параметра &ВключитьГруппы.
Откроем в конфигураторе форму отчета “НашПервыйЗапрос” на закладке “Параметры”:
Панель “Параметры” пока является пустой. Установим на ней флажок “ВключитьГруппы”. Это будет удобно сделать, добавив реквизит “ВключитьГруппы” типа Булево на закладке “Данные”:
Установим на закладке “Параметры” формы отчета флажок “ВключитьГруппы”. В поле Данные свойств флажка установим значение реквизита “ВключитьГруппы”:
Затем запустим программу 1С в пользовательском режиме, откроем отчет “НашПервыйЗапрос” и скопируем в поле текстового документа “ТекстЗапроса” текст запроса из предыдущего раздела:
ВЫБРАТЬ
Нажмем на кнопку “Сформировать” при различных состояниях флажка “Включить группы” и проверим правильность работы созданного нами механизма.
Упражнение. Напишите две отдельные процедуры с именами ПримерЗапроса и ПримерЗапросаСПараметрами, которые будут включать в себя приведенные в данном разделе запросы. Указанные процедуры можно разместить в модуле формы отчета “НашПервыйЗапрос”. Создать кнопки для запуска этих процедур и проверить их работу в пользовательском режиме.