Read professional hostgator reviews wrote by customers. Also check out these great inmotion reviews web hosting.

Базовые конструкции

Автор: Дмитрий Котельников

Пусть у нас имеется справочник Номенклатура с реквизитами: "Код", "Наименование", "Артикул". Этот справочник можно представить в виде таблицы, с одноименными полями:

Номенклатура

Цель запроса сообщить БД, что мы хотим выбрать и откуда. На данном этапе будем предполагать, что результатом выполнения запроса является некая таблица. Допустим наша цель получить все реквизиты из справочника "Номенклатура", тогда текст запроса примет следующий вид:

    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Номенклатура.Код,
        |    Номенклатура.Наименование,
        |    Номенклатура.Артикул
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";

Результат запроса

Небольшие пояснения. В секции ВЫБРАТЬ (SELECT) мы перечисляем какие поля конкретных таблиц хотим видеть на выходе. В разделе ИЗ (FROM) мы говорим из каких таблиц их взять. Обратите внимание, что ключевым словом КАК (AS) мы объявляем псевдоним для таблицы Справочник.Номенклатура, Вы можете использовать практически любое название, за исключение ключевых слов языка запросов 1С 8 и цифр. Псевдоним можно объявить и для полей:

    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Goods.Код КАК Code,
        |    Goods.Наименование КАК Description,
        |    Goods.Артикул КАК Article
        |ИЗ
        |    Справочник.Номенклатура КАК Goods"

На выходе получим таблицу вида:

 

Выбрать все поля из таблицы можно и через "*". Стоит заметить, что в данном случае к полям "Код", "Наименование", "Артикул" добавиться еще и ряд стандартных реквизитов определенных для объекта справочника, таких как: "ПометкаУдаления", "Предопределенный" и т.д. Посмотреть весь список стандартных реквизитов Вы можете нажав одноименную кнопку на закладке

Данные любого справочника. Пример:

    Запрос.Текст = "
        |ВЫБРАТЬ *
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";

Если поля выбираются из одной таблицы, то обращаться к ним можно не через точку, но никто так не пишет - это не читабельно и как правило в запросе фигурирует больше одной таблицы. Такой текст запроса успешно выполнится:

    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Код,
        |    Наименование,
        |    Артикул
        |ИЗ
        |    Справочник.Номенклатура";

В принципе в запросе может и не быть секции ИЗ, но как правило, так никто не пишет:

    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Справочник.Номенклатура.Код,
        |    Справочник.Номенклатура.Наименование,
        |    Справочник.Номенклатура.Артикул";

В запросе могут фигурировать не только поля информационной базы, а также поля примитивных типов, к примеру:

    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Номенклатура.Код,
        |    Номенклатура.Наименование,
        |    Номенклатура.Артикул,
        //число
        |    3000 КАК МаксимальнаяСтоимость,
        //дата
        |    ДАТАВРЕМЯ(2013, 1, 1) КАК ДатаПоставки,
        //булево
        |    ИСТИНА КАК Оплачен,
        //строка
        |    ""МебельСтрой"" КАК Производитель
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";

Директивы секции ВЫБРАТЬ

РАЗЛИЧНЫЕ - указывает на то, что в результате запроса мы хотим видеть только записи с различными полями, повторяющиеся будут просто отброшены:

    Запрос.Текст = "
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    Номенклатура.Наименование
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";

 В результате выполнения данного запроса мы не увидим ни одного повторяющего наименования.

ПЕРВЫЕ - указывает на то, что в результате запроса мы хотим видеть только первые n записей:

    Запрос.Текст = "
        |ВЫБРАТЬ ПЕРВЫЕ 100
        |    Номенклатура.Наименование
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";

РАЗРЕШЕННЫЕ - ограничивает выборку в соответствии с правами пользователя. Рекомендую всегда пользоваться этим ключевым словом, мало ли когда вам захочется прописать права пользователям.

 

← Введение | Группировка данных в запросе →

 

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


Защитный код
Обновить

© 2012, Котельников Дмитрий. При любом копировании материалов ссылка на сайт-источник zapros-1c-8.ru обязательна.