Записки программиста 1с

Условия в запросах 1с

Условия в запросах 1с применяются постоянно. Рассмотрим несколько примеров использования условия отбора данных в 1с.

Условия в запросах применяются для отбора данных. Условие отбора данных из таблицы задается после ключевого слова ГДЕ. В результат запроса будут включены только те записи, которые удовлетворяют условию отбора.

условия в запросах 1с
Условие отбора в запросе 1с

Пример создания запроса можно посмотреть в статье Запросы 1с.

Произведем подготовительные мероприятия. Создадим документ ВедомостьСдачиЭкзамена. Он будет иметь следующие реквизиты и табличную часть :

условия в запросах 1с
Реквизиты документа 1с

Создадим регистр сведений Оценки.

условия в запросах 1с
Регистр сведений “Оценки”

Настроим движение документа в регистр сведений “Оценки”. Создадим несколько отчетов по данному регистру.

Во-первых выведем всю информацию из регистра сведений “Оценки”:

Запрос к регистру сведений

Условия отбора в запросах 1с. Секция ГДЕ

Создадим отчет выводящий список студентов обучающихся на оценку 4. Для этого будем использовать секцию ГДЕ:

условия в запросах 1с
Использование секции ГДЕ

Теоретическая справка

В предложении ГДЕ можно использовать как имена полей, так и их псевдонимы. При этом
совершенно необязательно, чтобы поле, фигурирующее в предложении ГДЕ, входило в
список выборки.

Условие отбора может определяться и как простое логическое выражение, и как более
сложное, в котором простые логические выражения соединяются между собой
логическими операторами И, ИЛИ, НЕ.

ПОДОБНО

Функция языка запросов 1С даёт возможность провести сравнение выбранной строки с шаблонным вариантом. Параметр применяется в том случае, если строка, по которой производится поиск, чётко не закреплена. Шаблонное решение выстраивается по следующим правилам:

  • Если указан символ «%» – последующий набор значений содержит любое число произвольных элементов;
  • Нижнее подчёркивание означает единственный произвольный символ (_);
  • Элемент (группа элементов), заключённый в квадратные скобки – любой одиночный элемент, являющийся символом внутри скобок;
  • «[^…]» – любой из одиночных элементов, но не те, что перечисляются следующими за знаком отрицания.

Пример:

ВЫБРАТЬ
	Оценки.Студент КАК Студент,
	Оценки.Предмет КАК Предмет,
	Оценки.Преподаватель КАК Преподаватель,
	Оценки.Оценка КАК Оценка
ИЗ
	РегистрСведений.Оценки КАК Оценки
ГДЕ
	Оценки.Оценка ПОДОБНО "%удовлетворительно%"

условия в запросах 1с
Использование ключевого слова ПОДОБНО

Результат выполнения текста запроса с ключевым словом ПОДОБНО:

Подобно в 1c
Результат работы запроса

Если вам нужно в поиске использовать параметр, то переменная в запросе с параметром ПОДОБНО используется при помощи сложения. Помните, что параметр должен быть строкового типа или вам потребуется перевести ее в строку в запросе.

ВЫБРАТЬ
	ДелаЛК.Дата КАК Дата,
	ДелаЛК.Исполнитель КАК Исполнитель,
	ДелаЛК.ПутьКФайлу КАК ПутьКФайлу,
	ДелаЛК.Наименование КАК Наименование
ИЗ
	Задача.ДелаЛК КАК ДелаЛК
{ГДЕ
	(ДелаЛК.Дата <= &Кондата
			И ДелаЛК.Дата >= &НачДата),
			(ДелаЛК.Наименование ПОДОБНО "%" + (ВЫРАЗИТЬ(&Инструктаж КАК СТРОКА(10))) + "%"),
	(ДелаЛК.Исполнитель = &Исполнитель)}

В коде используется команда Выразить прочитать о ней можно в отдельной статье.

Установка необязательного параметра запроса

ГДЕ &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ИЛИ Док.Организация = &Организация

Также необязательные параметры в условии можно поместить в фигурные скобки {}

{Где Док.Организация=&Организация}

«ВЫБОР КОГДА … ТОГДА …» в запросе 1С 8.3

ВЫБОР
		КОГДА НЕ Сотрудники.Ссылка ЕСТЬ NULL
			ТОГДА Сотрудники.Ссылка
		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Сотрудники.пустаяСсылка)
	КОНЕЦ КАК СотрудникПроверенный

ЕСТЬ NULL и ЕСТЬNULL()

Выражение ЕСТЬ NULL используется для проверки, является ли значение NULL. Например является ли ссылка на объект Пустой.

Как сравнить с пустой ссылкой в запросе 1с

Сотрудники.Ссылка ЕСТЬ NULL

Функция ЕСТЬNULL () применяется в том случае, когда если значение принимает значение NULL подставляем значение по умолчанию:

ЕстьNull(Оценки.Оценка,2) КАК Оценка

Один ответ на “Условия в запросах 1с

  1. Благодарю вас, весьма приятно было перечитать, и сделать для себя определённые тезисы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *