Что такое параметр запроса 1с
1С 8.3 Параметры в запросе
&НаСервере
Процедура ПередачаПараметровПростыхТиповВЗапросе ()
// Создание отбора по поступлению материала за 2020 год
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Ссылка
|ИЗ
| Документ.ПоступлениеМатериалов
|ГДЕ
| Дата МЕЖДУ &НачДата И &КонДата
|УПОРЯДОЧИТЬ ПО
| Дата ВОЗР» );
&НаСервере
Процедура ПередачаПараметровСсылочныхТиповВЗапросе ()
// Создание отбора по материалам с единицей измерения «Куб.см.»
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Наименование,
| ЕдиницаИзмерения
|ИЗ
| Справочник.Материалы
|ГДЕ
| ЕдиницаИзмерения = &ЕдинИзмер» );
&НаСервере
Процедура ПередачаПараметровСписочногоТипаВЗапросе ()
// Создание отбора по материалам, единицы измерения входят в переданный список
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Наименование,
| ЕдиницаИзмерения
|ИЗ
| Справочник.Материалы
|ГДЕ
| ЕдиницаИзмерения В (&СписокЕдиницИзмерения)» );
&НаСервере
Процедура ПередачаПараметраВВидеТаблицыЗначенийВЗапросе ()
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Наименование,
| СрокИспользования,
| Производитель
|ИЗ
| Справочник.Материалы
|ГДЕ
| (СрокИспользования, Производитель) В (&СписокСочетаний)» );
&НаСервере
Процедура ИспользованиеТаблицыЗначенийПереданнойВЗапросКакПараметр ()
// Сперва выбираем данные во временную таблицу, а потом работаем как с обычной таблицей
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Название,
| РынЦена
|ПОМЕСТИТЬ
| ВременнаяТаблица
|ИЗ
| &ТаблицаДрагМеталлов КАК ДрагМеталлы
|;
|ВЫБРАТЬ
| Название,
| РынЦена
|ИЗ
| ВременнаяТаблица
|УПОРЯДОЧИТЬ ПО
| РынЦена УБЫВ» );
Обучение программированию на 1С
Параметры запроса и работа с ними. Типы равенствнеравенств равно, В, В ИЕРАРХИИ и др.
Для построения грамотного и эффективного запроса, нужно разбираться в его параметрах. Запрос 1С к базе данных – это конструкция, позволяющая извлечь актуальную информацию из набора таблиц и предоставить её пользователю для принятия обоснованного управленческого решения в наиболее оптимальной форме. Поскольку Запрос 1С является объектом с набором параметров, то определённые приёмы языка запросов позволяют повысить его читабельность, увеличить быстродействие, получить только уникальные записи. Чтобы уметь пользоваться преимуществами встроенного языка, нужно следовать рекомендациям профессионалов.
Что такое параметры запроса 1С и как они используются?
Параметры запроса необходимы для того, чтобы можно было придать конструкции требуемую гибкость и быстродействие. Для объявления нужного параметра в языке запроса используется символ «&». Расшифровывается это следующим образом: &ТаблицаЦен (в данном случае именем параметра является значение «ТаблицаЦен»). Чтобы запрос «понял» присваиваемый ему параметр, необходима следующая конструкция:
Рассмотрим на примере присвоения Запросу 1С параметра Текущая дата – выглядеть на языке запросов это будет следующим образом:
Это примитивный тип конструкции, есть и более интересные.
Списочные параметры – работаем с операторами В/В ИЕРАРХИИ
Массив данных и список значений могут быть переданы в качестве параметров языка запроса 1С. К примеру, конструкция может выглядеть следующим образом:
Рассмотрим подробнее значимые отличия операторов «В» и «В ИЕРАРХИИ» и другие функции языка запросов 1С v 8.
Функции языка запросов 1С v 8
Язык запросов программы 1С 8-ой версии предполагает, что к полям запроса будут применены специальные функции, которые усилят его эффективность и оптимизируют работу.
«ССЫЛКА»
Ссылочный тип логического оператора «ССЫЛКА» даёт возможность проверить поле составного вида на наличие в нём конкретного типа. Задаётся следующей конструкцией:
«МЕЖДУ»
Функция, которая позволяет конструкции проверить поле по параметру «вхождение значения в указанный диапазон». Синтаксическое выражение:
«В», «В ИЕРАРХИИ»
Конструкция служит для того, чтобы выявлять наличие определённых значений в передаваемых списках. Поиск производится также в подчинённых значениях после разворачивания иерархии элементов вниз. На практике это выглядит следующим образом:
«ПОДРОБНО»
Функция языка запросов 1С даёт возможность провести сравнение выбранной строки с шаблонным вариантом. Параметр применяется в том случае, если строка, по которой производится поиск, чётко не закреплена. Шаблонное решение выстраивается по следующим правилам:
«ЕСТЬ NULL »
Данный параметр работает следующим образом: в том случае, если значение поля не определено, то оно равно указанному выражению. С учётом синтаксиса языка запросов 1С получаем:
Все эти параметры – лишь краткий перечень эффективных функций языка Запросов 1С. Для грамотной работы в конфигураторе программы необходимо тщательно изучить все параметры языка запросов. Это не просто позволит получать нужные отчёты из базы данных 1С, но и увеличит быстродействие их обработки.
Запросы 1С:Предприятие 8. Параметры запроса и операторы сравнения
Параметры в запросах 1С служат для передачи в запрос данных, которые могут изменяться в зависимости от условий выполнения запроса и поэтому не могут быть жестко зафиксированы в самом запросе.
Параметры выделяются в тексте запроса символом &.
В качестве параметра можно передавать любой фрагмент текста запроса. Обычно в качестве параметров передаются значения для сравнений, операторы сравнений и источники запросов.
Использование в качестве источника передаваемой в запрос таблицы значений мы рассмотрим в отдельной статье. В остальных случаях синтаксис использования параметров в запросе 1С выглядит так:
В этом примере в запрос передается и знак сравнения и значение, с которым нужно сравнивать курс валюты.
Задавая условия в запросах 1С, мы сравниваем одно значение с другим(и). В платформе 1С:Предприятие предусмотрены следующие виды сравнений:
Если в шаблон необходимо включить один из символов, перечисленных выше, то перед ним должен идти спецсимвол. Этим спецсимволом может быть любой символ, главное чтобы он не применяется в шаблоне по прямому назначению и не был одним из символов, перечисленных выше. При этом после условия пишется слово СПЕЦСИМВОЛ и в кавычках приводится сам спецсимвол.
Такой запрос показал бы курсы валют, названия которых заканчивается на знак подчеркивания.
Синтаксис для сравнения с результатом вложенного запроса:
Общая схема выполнения запросов
Запросы в системе «1С:Предприятие 8» предназначены для выборки информации из базы данных. По сути, запрос — это обращение к системе с просьбой выбрать определенную информацию из базы данных, а часто не только выбрать, но и произвести некоторую обработку: сгруппировать, отсортировать, вычислить. Например, с помощью запроса можно легко узнать объем продаж каждого товара в течение года с детализацией до месяца или выбрать элементы справочников по определенному условию. Заметьте, что изменять данные с помощью запросов в 1С:Предприятии не разрешается.
Язык запросов 1С:Предприятия 8 основан на стандартном SQL, но при этом содержит значительное количество расширений, ориентированных на финансово-экономические задачи, и значительно облегчает разработку бизнес-приложений.
Для работы с запросами в системе «1С:Предприятие 8» предусмотрено несколько специальных объектов, а именно:
Общая схема выполнения запроса такова:
Графически это можно представить следующим образом:
Цифрами на схеме обозначены следующие действия:
1. Установка текста запроса
Объект «Запрос» имеет свойство «Текст», которое содержит строку с текстом запроса на языке запросов. Этому свойству, во-первых, можно явно присвоить значение или, во-вторых, воспользоваться конструктором объекта «Запрос». В последнем случае текст запроса передается в качестве параметра в конструктор объекта «Запрос» при его создании.
2-й вариант (с другим текстом запроса):
2. Установка параметров запроса
Объект «Запрос» имеет метод «УстановитьПараметр», с помощью которого в запрос передаются значения параметров. Параметры запроса обычно используются в условиях отбора (конструкции ГДЕ, ИМЕЮЩИЕ) или в качестве параметров вызова виртуальных таблиц. В тексте запроса параметры обозначаются знаком «&» (например, параметр «ВыбГруппа» в первом запросе).
В качестве параметров используются значения, которые указываются пользователем в диалоге или значения типов, для которых нет литералов, например, пустых ссылок на элементы справочников. Литералы же есть только у примитивных типов данных, а именно, число, строка, дата, булево, Null, Неопределено.
3. Выполнение запроса
После присвоения текста и установки параметров, запрос запускается на выполнение с помощью метода «Выполнить()» объекта «Запрос». Этот метод возвращает другой объект «РезультатЗапроса», содержащий выбранные данные из базы данных.
Далее возможны три варианта:
4. Получение выборки из результата запроса
Объект «РезультатЗапроса» имеет метод «Выбрать()», который возвращает новый объект «ВыборкаИзРезультатаЗапроса». В зависимости от параметра метода «Выбрать()» выборка будет линейной (по умолчанию), иерархической или по группировкам. Далее выборка обходится с помощью цикла «Пока Выборка.Следующий() Цикл», а в теле цикла производятся какие-то действия, например, вывод областей в табличный документ.
5. Выгрузка результата запроса в таблицу или дерево значений
6. Формирование сводной таблицы
Результат запроса может быть использован как источник данных для сводной таблицы. При этом итоги (см. предложение ИТОГИ в тексте запроса) становятся ресурсами (отображаются в области данных), а группировочные поля, по которым они подсчитываются, становятся измерениями сводной таблицы. В качестве источника данных для сводной таблицы может быть также использован объект «ПостроительОтчета», но ему на вход тоже подается запрос, поэтому можно сказать, что основа любой сводной таблицы — это запрос к базе данных.
Передача значений в запрос 1С
На практике в большинстве случаев необходимо ограничить результат запроса условиями. Рассмотрим как можно передать различные значения в запрос.
Значения в запрос можно передать несколькими способами:
Использование параметров запроса
Данный способ наиболее универсален, т.к. позволяет передать в запрос любое значение.
В тексте запроса перед именем параметра ставится символ &. Установка значений параметров производится методом
УстановитьПараметр ( ИмяПараметра >, ЗначениеПараметра >)
Пример передачи параметра в запрос:
Результатом запроса будут все договора, у которых реквизит «Контрагент» равен переданному значению параметра «КонтрагентСсылка».
Ключевое слово ЗНАЧЕНИЕ
В запросе можно обратиться к предопределенным данным конфигурации без использования параметров. При помощи ключевого слова ЗНАЧЕНИЕ в запрос можно передать такие данные, как:
Пример обращения к предопределенным значениям в запросе:
Результатом запроса будут все элементы справочника Номенклатура с типом Услуга.
Ключевое слово ДАТАВРЕМЯ
К значениям типа дата в запросе можно обратиться при помощи конструкции
ДАТАВРЕМЯ ( Год >, Месяц >, День >, Час >, Минута >, Секунда >)
Все параметры здесь — целые числа. Последние три параметра (Час, Минута, Секунда) указывать не обязательно.
Максимальная дата, которую можно задать — 31.12.3999 23:59:59.
Пример обращения к пустой дате в запросе:
Результатом запроса будут все элементы справочника СоглашенияСПоставщиками, у которых не задана дата окончания действия.
Ключевое слово ТИП
Обращение к типу ТИП в запросе осуществляется конструкцией
Здесь ИмяТипа может принимать имя примитивного типа или имя таблицы ссылочного типа.
Примеры использования в запросе:
ТИП(Строка)
ТИП(Число)
ТИП(Справочник.Пользователи)
ТИП(Документ.РасходныйКассовыйОрдер)
ТИП(ПланВидовХарактеристик.СтатьиРасходов)
Обращение к примитивным типам в запросе
Значения типов Булево, Число, Строка, Неопределено в языке запросов задаются так же, как и во встроенном языке.
Пример обращения к примитивным типам в запросе:
Результатом запроса будут все проведенные документы ПриходныйКассовыйОрдер с суммой документа больше 1000 и реквизитом «Принято от» равным «Иванов И.И.». Обратите внимание, что здесь переменная типа Строка указана в двух двойных кавычках. Необходимо использовать именно такой синтаксис.
Остались вопросы?
Спросите в комментариях к статье.