рубрики: Запросы | Дата: 28 января, 2016
Достаточно часто встречаются ситуации когда в запросе надо получить предопределенное значение какого-либо объекта (справочника, плана видов расчета и т.д.), либо значение перечисления, либо пустую ссылку. Такая возможность в языке запросов 1С8 реализована при помощи функции ЗНАЧЕНИЕ.
Сразу перейдем к примеру. У нас есть периодический регистр сведений ОценкиСайтов. Измерение Сайт имеет тип Справочник.Сайты, а ресурс Оценка представлен перечислением ОценкиСайта.
В свою очередь справочник Сайты содержит предопределенный элемент – Профессия1С.
Выберем из регистра все записи где в поле Сайт содержится наш предопределенный элемент.
Это можно сделать вот таким запросом:
ВЫБРАТЬ
ОценкиСайтов.Период,
ОценкиСайтов.Сайт,
ОценкиСайтов.Оценка
ИЗ
РегистрСведений.ОценкиСайтов КАК ОценкиСайтов
ГДЕ
ОценкиСайтов.Сайт = ЗНАЧЕНИЕ(Справочник.Сайты.Профессия1С)
Другой пример. Перечисление ОценкиСайта содержит следующие значения: Низкая, Средняя, Высокая.
Выберем все записи, где оценка Высокая:
ВЫБРАТЬ
ОценкиСайтов.Период,
ОценкиСайтов.Сайт,
ОценкиСайтов.Оценка
ИЗ
РегистрСведений.ОценкиСайтов КАК ОценкиСайтов
ГДЕ
ОценкиСайтов.Оценка = ЗНАЧЕНИЕ(Перечисление.ОценкиСайта.Высокая)
И наконец выберем записи где сайт не указан, т.е. где измерение Сайт – пустая ссылка
ВЫБРАТЬ
ОценкиСайтов.Период,
ОценкиСайтов.Сайт,
ОценкиСайтов.Оценка
ИЗ
РегистрСведений.ОценкиСайтов КАК ОценкиСайтов
ГДЕ
ОценкиСайтов.Сайт = ЗНАЧЕНИЕ(Справочник.Сайты.ПустаяСсылка)
Конечно все эти запросы можно реализовать и с использованием параметров запроса. Но когда запрос объемом в несколько экранов гораздо удобней читать его если использовалась функция ЗНАЧЕНИЕ, чем пролистывать весь текст вверх или вниз в поисках параметра.
Добавить комментарий