Выполнить пакет запросов и получить два результата

Учебные задачи

Два независимых запроса в одном тексте: объясняем массив результатов пакета.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Выполняйте на сервере.

  2. Первый запуск не требует метаданных конфигурации.

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ &Первое КАК Значение;
|ВЫБРАТЬ &Второе КАК Значение";
Запрос.УстановитьПараметр("Первое", "Книга");
Запрос.УстановитьПараметр("Второе", "Ручка");
Результаты = Запрос.ВыполнитьПакет();
Для Каждого Результат Из Результаты Цикл
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        Сообщить(Выборка.Значение);
    КонецЦикла;
КонецЦикла;

Разбор по шагам

  1. Разделяем тексты запросов точкой с запятой.

  2. ВыполнитьПакет возвращает массив результатов.

  3. Обходим каждый результат отдельной выборкой.

Как проверить результат

  1. Вывод: Книга, затем Ручка.

  2. Результаты.Количество() равно 2.

Ожидаемый результат

Два результата с одной строкой каждый.

На что обратить внимание

  1. В пакетах с ПОМЕСТИТЬ не каждый элемент является обычной выборкой; учитывайте тип результата.

  2. Выполнить возвращает последний результат, а не массив всего пакета.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.