1С: Запросы. Выбор записей
Описание
Примеры выбора записей в запросе. Выбор полей таблицы по условию, выбор разрешенных, изменение типа полей и др.
Оглавление (нажмите, чтобы раскрыть)
Выбор всех полей таблицы
Пример выбора всех полей таблицы в запросе 1СЗапрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * |ИЗ | Справочник.Сотрудники"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Ссылка); КонецЦикла;
Выбор конкретных полей таблицы
Пример выбора конкретных полей таблицы в запросе 1СЗапрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Наименование, | Код |ИЗ | Справочник.Сотрудники"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Код + ": " + Выборка.Наименование); КонецЦикла;
Выбор разрешенных записей
Пример выбора разрешенных записей в запросе 1С//Если есть ограничение прав пользователей //на уровне записей, то выбираем только разрешенные. //Иначе может возникнуть ошибка выполнения запроса Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Наименование, | Код |ИЗ | Справочник.Сотрудники"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Код + ": " + Выборка.Наименование); КонецЦикла;
Добавление произвольного столбца
Пример добавления произвольного поля в запросе 1СЗапрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Наименование КАК ФИО, | 7000 КАК Оклад |ИЗ | Справочник.Сотрудники"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.ФИО + ": " + Выборка.Оклад); КонецЦикла;
Изменение типа поля
Пример изменения типа поля в запросе 1С//Округляем начисления до 2-х знаков, затем суммируем //аналог cast( as) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СУММА(ВЫРАЗИТЬ(Начисления.Результат КАК ЧИСЛО(15, 2))) КАК Итог |ИЗ | РегистрРасчета.Начисления КАК Начисления"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Итог); КонецЦикла;
Выбрать первые несколько записей
Пример выбора первых нескольких записей в запросе 1С//первые три записи справочника "Сотрудники" Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 3 | Наименование, | Код |ИЗ | Справочник.Сотрудники"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Код + ": " + Выборка.Наименование); КонецЦикла;
Псевдонимы полей и таблиц
Пример использования псевдонимов полей и таблиц в запросе 1СЗапрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Наименование КАК ФИО, | Спр.Код КАК ТабНомер |ИЗ | Справочник.Сотрудники КАК Спр"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.ТабНомер + ": " + Выборка.ФИО); КонецЦикла;
Убираем дубликаты строк
Пример отсечения дублирующихся строк в запросе 1С//выбираем наименования клиентов без повторов //аналог distinct Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Наименование |ИЗ | Справочник.Клиенты"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование); КонецЦикла;
Условие выбора значения
Пример задания условия выбора значения в запросе 1С//столбец Вид будет содержать значение "группа" //если поле ЭтоГруппа = ИСТИНА //в противном случае значение столбца = "элемент" //аналог case when then else end Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Наименование, | ВЫБОР КОГДА ЭтоГруппа ТОГДА | ""группа"" | ИНАЧЕ | ""элемент"" КОНЕЦ КАК Вид |ИЗ | Справочник.Номенклатура"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование + ": " + Выборка.Вид); КонецЦикла;