1С. Результат запроса в таблицу значений без цикла

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

Колонки в ТЗ должны совпадать с наименованиями колонок в выгружаемом запросе, в этом случае произойдет сопоставление результатов с колонками таблицы.
В качестве примера возьмем таблицу значений, которая привязана к табличной части на форме.
Пример таблицы значений, как реквизита формы:


Пример вывода результата запроса в указанную таблицу значений:

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   п_ПрофилиИДисциплины.Дисциплина КАК Дисциплина,
    |   п_ПрофилиИДисциплины.Порядок КАК Порядок
    |ИЗ
    |   РегистрСведений.п_ПрофилиИДисциплины КАК п_ПрофилиИДисциплины
    |ГДЕ
    |   п_ПрофилиИДисциплины.Профиль = &Профиль
    |УПОРЯДОЧИТЬ ПО
    |   Порядок,
    |   Дисциплина";

Запрос.УстановитьПараметр("Профиль", ЭтотОбъект.Профиль);

ЭтотОбъект.СписокДисциплин.Загрузить(Запрос.Выполнить().Выгрузить());


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

См. также - Копирование таблицы значений

(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

2 комментария:

  1. я тоже думал это без Цикла, но Белоусов (препод из УЦ) сказал что чудес не бывает и это работает в цикле просто очень сильно оптимизировано.

    ОтветитьУдалить
  2. Нативные реализации всегда быстрее конструкций кода 1с.
    Дело даже не в оптимизациях, а в том, что это исполняется на очень низком уровне без участия медленной виртуальной машины 1с

    ОтветитьУдалить