1С: Запросы. Выбор записей

Запросы. Выбор записей

Оглавление (нажмите, чтобы раскрыть)

Выбор всех полей таблицы

Пример выбора всех полей таблицы в запросе 1С
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   *
    |ИЗ
    |   Справочник.Сотрудники";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Ссылка);
КонецЦикла;

Выбор конкретных полей таблицы

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

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Код + ": " +
        Выборка.Наименование);
КонецЦикла;

Выбор разрешенных записей

Пример выбора разрешенных записей в запросе 1С
//Если есть ограничение прав пользователей
//на уровне записей, то выбираем только разрешенные.
//Иначе может возникнуть ошибка выполнения запроса
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   Наименование,
    |   Код
    |ИЗ
    |   Справочник.Сотрудники";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Код + ": " +
        Выборка.Наименование);
КонецЦикла;

Добавление произвольного столбца

Пример добавления произвольного поля в запросе 1С
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   Наименование КАК ФИО,
    |   7000 КАК Оклад      
    |ИЗ
    |   Справочник.Сотрудники";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.ФИО + ": " +
        Выборка.Оклад);
КонецЦикла;

Изменение типа поля

Пример изменения типа поля в запросе 1С
//Округляем начисления до 2-х знаков, затем суммируем
//аналог cast( as)
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   СУММА(ВЫРАЗИТЬ(Начисления.Результат КАК ЧИСЛО(15, 2))) КАК Итог
    |ИЗ
    |   РегистрРасчета.Начисления КАК Начисления";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Итог);
КонецЦикла;

Выбрать первые несколько записей

Пример выбора первых нескольких записей в запросе 1С
//первые три записи справочника "Сотрудники"
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 3
    |   Наименование,
    |   Код
    |ИЗ
    |   Справочник.Сотрудники";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Код + ": " +
        Выборка.Наименование);
КонецЦикла;

Псевдонимы полей и таблиц

Пример использования псевдонимов полей и таблиц в запросе 1С
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   Наименование КАК ФИО,
    |   Спр.Код КАК ТабНомер
    |ИЗ
    |   Справочник.Сотрудники КАК Спр";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.ТабНомер + ": " +
        Выборка.ФИО);
КонецЦикла;

Убираем дубликаты строк

Пример отсечения дублирующихся строк в запросе 1С
//выбираем наименования клиентов без повторов
//аналог distinct
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |   Наименование
     |ИЗ
    |   Справочник.Клиенты";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Наименование);
КонецЦикла;

Условие выбора значения

Пример задания условия выбора значения в запросе 1С
//столбец Вид будет содержать значение "группа"
//если поле ЭтоГруппа = ИСТИНА
//в противном случае значение столбца = "элемент"
//аналог case when then else end
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   Наименование,
    |   ВЫБОР КОГДА ЭтоГруппа ТОГДА 
    |     ""группа"" 
    |   ИНАЧЕ 
    |     ""элемент"" КОНЕЦ КАК Вид
    |ИЗ
    |   Справочник.Номенклатура";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Наименование + ": " +
        Выборка.Вид);
КонецЦикла;
Ключи: |