Запросы 1с 8 — Программная работа

Для программиста Запросы 1с 8 один из главных инструментов разработки. Рассмотрим основы программной работы с ними.

Запросы 1с 8 — программное создание

  • Создание запроса 1с 8. Для начала работы с запросом создадим переменную типа Запрос:
    Запрос = Новый Запрос;
  • Написание текста запроса. У созданной выше переменной есть строковое свойство Текст, именно оно содержит в себе текст запроса. Текст запроса можно писать вручную или используя Конструктор запроса. Для того что бы начать писать запрос при помощи конструктора создадим в модуле следующую строку:
    Запрос.Текст = "";

    Установим курсор между кавычками и вызовем контекстное меню нажатием правой кнопки мыши. В меню выберем пункт Конструктор запроса. Созданный при помощи конструктора текст запроса будет выглядеть следующим образом (пример):

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

    Чтобы отредактировать текст запроса установим курсор в любое место в тексте и вызовем конструктор приведенным выше способом.

  • Передача параметров. У переменной типа Запрос есть свойство Параметры. В нем хранится структура со всеми параметрами переданными в запрос. Для того, чтобы передать параметр в данную структуру используем метод УстановитьПараметр(<Имя>, <Значение>). Где Имя — имя параметра в тексте запроса, Значение — передаваемое значение:
    Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Товары");
    Запрос.УстановитьПараметр("Группа", Номенклатура);

Выполнение запроса 1с 8 и работа с полученными данными

  • Выполнение запроса. После того, как написан текст запроса и в него переданы все необходимые параметры, запрос необходимо выполнить при помощи метода Выполнить().
    Результат = Запрос.Выполнить();

    Полученный таким образом результат запроса 1с 8 можно:

    • Выгрузить в таблицу значений при помощи метода Выгрузить().
      ТаблицаРезультат = Результат.Выгрузить();

      Таблицу значений можно обойти при помощи цикла Для Каждого.

      Для Каждого СтрокаТаблицы Из ТаблицаРезультат Цикл
          //Код для обработки строки
      КонецЦикла;
      
    • Создать выборку результатов запроса при помощи метода Выбрать().
      Выборка = Результат.Выбрать();

      Для перемещения между записями выборки используется метод Следующий(). Для того чтобы обойти всю выборку воспользуемся циклом Пока.

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

    И в выборке и в выгрузке результатов запроса можно узнать количество содержащихся в них строк при помощи метода Количество().

    Если Не Выборка.Количество() = 0 Тогда
       //Ваш код
    КонецЕсли;

Если вы еще не разобрались с главным оператором языка запросов — ВЫБРАТЬ, то прочтите статью: Язык запросов 1с — оператор Выбрать

Научитесь пользоваться конструктором запросов: Конструктор запросов 1С — обучение на примерах

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

Ваш адрес email не будет опубликован.