Условия в запросах 1с применяются постоянно. Рассмотрим несколько примеров использования условия отбора данных в 1с.
Условия в запросах применяются для отбора данных. Условие отбора данных из таблицы задается после ключевого слова ГДЕ. В результат запроса будут включены только те записи, которые удовлетворяют условию отбора.
Пример создания запроса можно посмотреть в статье Запросы 1с.
Произведем подготовительные мероприятия. Создадим документ ВедомостьСдачиЭкзамена. Он будет иметь следующие реквизиты и табличную часть :
Создадим регистр сведений Оценки.
Настроим движение документа в регистр сведений “Оценки”. Создадим несколько отчетов по данному регистру.
Во-первых выведем всю информацию из регистра сведений “Оценки”:
Условия отбора в запросах 1с. Секция ГДЕ
Создадим отчет выводящий список студентов обучающихся на оценку 4. Для этого будем использовать секцию ГДЕ:
Теоретическая справка
В предложении ГДЕ можно использовать как имена полей, так и их псевдонимы. При этом
совершенно необязательно, чтобы поле, фигурирующее в предложении ГДЕ, входило в
список выборки.
Условие отбора может определяться и как простое логическое выражение, и как более
сложное, в котором простые логические выражения соединяются между собой
логическими операторами И, ИЛИ, НЕ.
ПОДОБНО
Функция языка запросов 1С даёт возможность провести сравнение выбранной строки с шаблонным вариантом. Параметр применяется в том случае, если строка, по которой производится поиск, чётко не закреплена. Шаблонное решение выстраивается по следующим правилам:
- Если указан символ «%» – последующий набор значений содержит любое число произвольных элементов;
- Нижнее подчёркивание означает единственный произвольный символ (_);
- Элемент (группа элементов), заключённый в квадратные скобки – любой одиночный элемент, являющийся символом внутри скобок;
- «[^…]» – любой из одиночных элементов, но не те, что перечисляются следующими за знаком отрицания.
Пример:
ВЫБРАТЬ
Оценки.Студент КАК Студент,
Оценки.Предмет КАК Предмет,
Оценки.Преподаватель КАК Преподаватель,
Оценки.Оценка КАК Оценка
ИЗ
РегистрСведений.Оценки КАК Оценки
ГДЕ
Оценки.Оценка ПОДОБНО "%удовлетворительно%"
Результат выполнения текста запроса с ключевым словом ПОДОБНО:
Если вам нужно в поиске использовать параметр, то переменная в запросе с параметром ПОДОБНО используется при помощи сложения. Помните, что параметр должен быть строкового типа или вам потребуется перевести ее в строку в запросе.
ВЫБРАТЬ
ДелаЛК.Дата КАК Дата,
ДелаЛК.Исполнитель КАК Исполнитель,
ДелаЛК.ПутьКФайлу КАК ПутьКФайлу,
ДелаЛК.Наименование КАК Наименование
ИЗ
Задача.ДелаЛК КАК ДелаЛК
{ГДЕ
(ДелаЛК.Дата <= &Кондата
И ДелаЛК.Дата >= &НачДата),
(ДелаЛК.Наименование ПОДОБНО "%" + (ВЫРАЗИТЬ(&Инструктаж КАК СТРОКА(10))) + "%"),
(ДелаЛК.Исполнитель = &Исполнитель)}
В коде используется команда Выразить прочитать о ней можно в отдельной статье.
Установка необязательного параметра запроса
ГДЕ &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ИЛИ Док.Организация = &Организация
Также необязательные параметры в условии можно поместить в фигурные скобки {}
{Где Док.Организация=&Организация}
«ВЫБОР КОГДА … ТОГДА …» в запросе 1С 8.3
ВЫБОР
КОГДА НЕ Сотрудники.Ссылка ЕСТЬ NULL
ТОГДА Сотрудники.Ссылка
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Сотрудники.пустаяСсылка)
КОНЕЦ КАК СотрудникПроверенный
ЕСТЬ NULL и ЕСТЬNULL()
Выражение ЕСТЬ NULL используется для проверки, является ли значение NULL. Например является ли ссылка на объект Пустой.
Как сравнить с пустой ссылкой в запросе 1с
Сотрудники.Ссылка ЕСТЬ NULL
Функция ЕСТЬNULL () применяется в том случае, когда если значение принимает значение NULL подставляем значение по умолчанию:
ЕстьNull(Оценки.Оценка,2) КАК Оценка
Благодарю вас, весьма приятно было перечитать, и сделать для себя определённые тезисы.