1с выборка первого значения

Запросы в системе «1С:Предприятие 8» предназначены для выборки информации из базы данных. По сути, запрос — это обращение к системе с просьбой выбрать определенную информацию из базы данных, а часто не только выбрать, но и произвести некоторую обработку: сгруппировать, отсортировать, вычислить. Например, с помощью запроса можно легко узнать объем продаж каждого товара в течение года с детализацией до месяца или выбрать элементы справочников по определенному условию. Заметьте, что изменять данные с помощью запросов в 1С:Предприятии не разрешается.

Язык запросов 1С:Предприятия 8 основан на стандартном SQL, но при этом содержит значительное количество расширений, ориентированных на финансово-экономические задачи, и значительно облегчает разработку бизнес-приложений.

Для работы с запросами в системе «1С:Предприятие 8» предусмотрено несколько специальных объектов, а именно:

  • Запрос
  • РезультатЗапроса
  • ВыборкаИзРезультатаЗапроса.

Общая схема выполнения запроса такова:

  1. Создание объекта «Запрос» с нужным текстом запроса на специальном языке запросов.
  2. Установка параметров запроса с помощью метода УстановитьПараметр.
  3. Выполнение запроса, получение результата.
  4. Получение выборки из результата запроса или выгрузка результата в таблицу значений / дерево значений. Также есть возможность использовать результат запроса для формирования сводной таблицы.
  5. Обработка выборки или таблицы значений (например, перебор строк) и выполнение действий, для которых был нужен запрос, например, вывод области при формировании отчета

Графически это можно представить следующим образом:

Цифрами на схеме обозначены следующие действия:

1. Установка текста запроса

Объект «Запрос» имеет свойство «Текст», которое содержит строку с текстом запроса на языке запросов. Этому свойству, во-первых, можно явно присвоить значение или, во-вторых, воспользоваться конструктором объекта «Запрос». В последнем случае текст запроса передается в качестве параметра в конструктор объекта «Запрос» при его создании.

2-й вариант (с другим текстом запроса):

2. Установка параметров запроса

Объект «Запрос» имеет метод «УстановитьПараметр», с помощью которого в запрос передаются значения параметров. Параметры запроса обычно используются в условиях отбора (конструкции ГДЕ, ИМЕЮЩИЕ) или в качестве параметров вызова виртуальных таблиц. В тексте запроса параметры обозначаются знаком «&» (например, параметр «ВыбГруппа» в первом запросе).

В качестве параметров используются значения, которые указываются пользователем в диалоге или значения типов, для которых нет литералов, например, пустых ссылок на элементы справочников. Литералы же есть только у примитивных типов данных, а именно, число, строка, дата, булево, Null, Неопределено.

3. Выполнение запроса

После присвоения текста и установки параметров, запрос запускается на выполнение с помощью метода «Выполнить()» объекта «Запрос». Этот метод возвращает другой объект «РезультатЗапроса», содержащий выбранные данные из базы данных.

Далее возможны три варианта:

  • во-первых, из результата запроса может быть получена выборка (линейная, иерархическая и т.д.),
  • во-вторых, результат запроса может быть выгружен в таблицу или дерево значений,
  • в-третьих, результат запроса может являться источником данных для сводной таблицы.

4. Получение выборки из результата запроса

Объект «РезультатЗапроса» имеет метод «Выбрать()», который возвращает новый объект «ВыборкаИзРезультатаЗапроса». В зависимости от параметра метода «Выбрать()» выборка будет линейной (по умолчанию), иерархической или по группировкам. Далее выборка обходится с помощью цикла «Пока Выборка.Следующий() Цикл», а в теле цикла производятся какие-то действия, например, вывод областей в табличный документ.

5. Выгрузка результата запроса в таблицу или дерево значений

Объект «РезультатЗапроса» имеет метод «Выгрузить()», который возвращает таблицу значений или дерево значений, в зависимости от переданного параметра . Если устанавливается прямой тип обхода (по умолчанию), то будет создана таблица значений, иначе — дерево значений. Далее таблица значений (дерево значений) может быть обработана средствами встроенного языка или показана пользователю в табличном поле.

6. Формирование сводной таблицы

Результат запроса может быть использован как источник данных для сводной таблицы. При этом итоги (см. предложение ИТОГИ в тексте запроса) становятся ресурсами (отображаются в области данных), а группировочные поля, по которым они подсчитываются, становятся измерениями сводной таблицы. В качестве источника данных для сводной таблицы может быть также использован объект «ПостроительОтчета», но ему на вход тоже подается запрос, поэтому можно сказать, что основа любой сводной таблицы — это запрос к базе данных.

При обходе результата запроса нередко возникает необходимость получения всех значений группировок внутри какой-либо другой группировки. Такая возможность может понадобиться, например, при выводе кросс отчета. Для обеспечения такой возможности в объекте ВыборкаИзРезультатаЗапроса предусмотрен третий параметр функции Выбрать().

Рассмотрим пример. Пусть нам необходимо получить кросс-отчет по остаткам номенклатуры на различных складах. Номенклатуру необходимо вывести в строках, склады — в колонках.
Запрос для получения остатков будет выглядеть так:
Код 1C v 8.х

Для обхода номенклатуры воспользуемся выборкой из результата запроса:
Код 1C v 8.х

Для обхода внутри номенклатуры всех складов, присутствующих в результате запроса, получим вложенную выборку от выборки номенклатуры, с указанием третьего параметра «ВСЕ»:
Код 1C v 8.х

В случае если необходимо построить несколько отдельных кросс-таблиц для каждого значения некой группировки, необходимо в качестве третьего параметра выборки указать имя группировки, внутри которой необходимо получить все значения, вошедшие в запрос.
Пример:
Код 1C v 8.х
В данном примере будут получены все значения складов, присутствующие в ранее выбранной организации.

Выборка в 1С 8.2 и 8.3- специализированный способ перебора записей таблиц информационной базы. Рассмотрим подробно, что такое выборка и как её использовать.

Что такое выборка в 1С?

Выборка — способ перебора информации в 1С, который заключается в последовательной установки курсора на последующей записи. Выборку в 1С можно получить из результата запроса и из менеджера объектов , например, документов или справочников.

Пример получения и перебора из менеджера объекта:

Пример получения выборки из запроса:

Получите 267 видеоуроков по 1С бесплатно:

Оба перечисленных выше примера получают одинаковые наборы данных для перебора.

Методы Выборки 1С 8.3

Выборка имеет большое количество методов, рассмотрим их подробней:

  • Выбрать() — метод, с помощью которого получают непосредственно выборку. Из выборки можно получить еще одну, подчиненную, выборку если указан тип обхода «по группировкам».
  • Владелец() — метод, обратный Выбрать(). Позволяет получить «родительскую» выборка запроса.
  • Следующий() — метод, производящий перевод курсора на следующую запись. Если запись существует, возвращает Истина, если записи закончились — Ложь.
  • НайтиСледующий() — очень полезный метод, с помощью которого можно выполнять перебор только нужных поле по значению отбора (отбор — структура полей).
  • СледующийПоЗначениюПоля() — позволяет получить следующую запись с отличным от текущего положения значения. Например, необходимо перебрать все записи с уникальный значением поля «Контрагент»: Выборка.СледующийПоЗначениюПоля(«Контрагент»).
  • Сбросить() — позволяет сбросить текущее расположение курсора и установить его в первоначальное положение.
  • Количество() — возвращает количество записей в выборке.
  • Получить() — с помощью метода можно можно установить курсор на нужной записи по значению индекса.
  • Уровень() — уровень в иерархии текущей записи (число).
  • ТипЗаписи() — отображает тип записи — ДетальнаяЗапись, ИтогПоГруппировке, ИтогПоИерархии или ОбщийИтог
  • Группировка() — возвращает имя текущей группировки, если запись не является группировкой — пустую строку.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Оцените статью