Предложение ВЫБРАТЬ / SELECT
Предложение ВЫБРАТЬ позволяет указать список полей для выборки. Если вместо перечня полей указана звездочка («*»), тогда это означает, что нужно выбрать все поля таблицы. Указание конкретных полей позволяет выбрать только заданные колонки из исходной таблицы-источника запроса.
В качестве источника данных для запроса можно использовать справочники, документы, журналы документов, регистры и другие таблицы-источники.
Синтаксическая диаграмма конструкции ВЫБРАТЬ такова:
ВЫБРАТЬ [РАЗЛИЧНЫЕ] [ПЕРВЫЕ <Количество>] <:Список полей выборки I *>
ВЫБРАТЬ Наименование, Цена ИЗ Справочник.Товары
ВЫБРАТЬ * ИЗ Справочник.Сотрудники
ВЫБРАТЬ Номер, Дата, Представление ИЗ Документ.РасходнаяНакладная
ВЫБРАТЬ * ИЗ РегистрНакопления.Продажи
В системе 1С:Предприятие 8.0 можно построить запрос без указания ключевого слова ИЗ, тогда список полей должен содержать полные имена таблиц, например:
ВЫБРАТЬ Справочник.Товары.Наименование, Справочник.Товары.Цена
ВЫБРАТЬ Справочник.Сотрудники.*
Псевдонимы полей (КАК/AS)
Для поля может быть назначен псевдоним с помощью ключевого слова КАК. Это позволяет обращаться к полю по псевдониму при указании итогов и порядка сортировки, а также в результате запроса.
В следующем запросе для полей Наименование и ЕдИзм назначаются псевдонимы:
ВЫБРАТЬ Наименование КАК Товар, Цена, ЕдИзм КАК ЕдиницаИзмерения
ИЗ Справочник.Товары
УПОРЯДОЧИТЬ ПО Товар
Результат запроса будет следующий:
|
Товар |
Цена |
ЕденицаИзмерения |
| Бумага | 130 | Пачка |
| Вилы | 1000 | Шт |
| Грабли | 1500 | Шт |
Ключевое слово КАК необязательно и может быть опущено, но для повышения наглядности его рекомендуется указывать, особенно на первых порах. Ниже приведен пример того же запроса без ключевого слова КАК:
ВЫБРАТЬ Наименование Товар, Цена, ЕдИзм ЕдиницаИзмерения
ИЗ Справочник.Товары
УПОРЯДОЧИТЬ ПО Товар
Ключевое слово РАЗЛИЧНЫЕ/DISTINCT
Ключевое слово РАЗЛИЧНЫЕ позволяет оставить в результате запроса только отличающиеся строки. Например, если мы выбираем контрагентов из документа РасходнаяНакладная, то вполне вероятно, что один и тот же контрагент, может встретиться в нескольких накладных, поэтому без ключевого слова РАЗЛИЧНЫЕ он будет присутствовать в результате запроса несколько раз.
Например, в результате приведенного ниже запроса несколько раз встречается контрагент ООО «Новый мир»:
ВЫБРАТЬ Контрагент ИЗ Документ.РасходнаяНакладная
|
Контрагент |
| ООО”Новый мир” |
| ЗАО”Стройметмаш” |
| ООО”Новый мир” |
| ООО”Механика” |
Если же указать ключевое слово РАЗЛИЧНЫЕ, то повторяющиеся записи из результата запроса будут удалены:
ВЫБРАТЬ РАЗЛИЧНЫЕ Контрагент ИЗ Документ.РасходнаяНакладйая
| Контрагент |
| ООО”Новый мир” |
| ЗАО”Стройметмаш” |
| ООО”Механика” |
Ключевое слово ПЕРВЫЕ / ТОР
Данное ключевое слово позволяет ограничить выборку несколькими первыми записями. Часто это ключевое слово применяется
в комбинации с сортировкой (см. предложение УПОРЯДОЧИТЬ ПО).
Допустим, требуется выбрать 3 самых дорогих товара. Это реализуется следующим запросом:
ВЫБРАТЬ ПЕРВЫЕ 3 Наименование, Цена
ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО Цена УБЫВ
Результат запроса будет такой:
| Наименование | Цена |
| ЖК-МониторLG Flatron 21″ | 1500 |
| Компьютор Farmoza | 1450 |
| ЖК-МониторLG Flatron 17″ | 1200 |
Поля из вложенных таблиц
Поле в списке выборки может ссылаться на вложенную таблицу источника данных, например, на табличную часть справочника. В этом случае поле результата запроса будет иметь тип РезультатЗапроса, то есть содержать вложенный результат запроса, сформированный на основе вложенной таблицы-источника. По умолчанию во вложенный результат запроса включаются все поля вложенной таблицы-источника данных. Имеется возможность явно определить группу полей, которые должны содержаться во вложенном результате запроса. Список полей, выбираемых из вложенной таблицы, описывается по следующему образцу:
//требуются все поля из вложенной таблицы
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.*
//требуется только одно поле из табличной части
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.Сумма
//требуется несколько полей из табличной части
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.(Количество,Сумма)
//для полей вложенной таблицы можно указать псевдонимы
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.(Количество КАК Кол,Сумма КАК Сум)