Если необходимо выгрузить результат для последующей его обработки, то это очень просто делается встроенными средствами 1С
Так же конструкция может выглядеть так:
ТабЗнач = Запрос. Выполнить(). Выгрузить();
После мы получаем таблицу значений с реквизитами, как в запросе:
- Владелец
- Код
- Наименование
После таблицу значений можно обрабатывать.
Например обойти в цикле:
Для каждого СтрокаТЧ из ТабЗнач Цикл
КонецЦикла;
В данном примере результат запроса выгружаем в Таблицу значений, набор полей таблицы значений полностью соответствует набору полей регистра сведений.
Таб = Запрос. Выполнить(). Выгрузить();
РегистрПоНалогам = РегистрыСведений. СпособыОтраженияРасходовПоНалогам;
НаборПоНалогам = РегистрПоНалогам. СоздатьНаборЗаписей();
НаборПоНалогам. Загрузить(Таб);
НаборПоНалогам. Записать();
Таблицу значений можно сформировать и заполнить другими способами. Так же регистр можно заполнить путем обхода в цикле таблицы значений.
Для каждого Строка Из Таб Цикл
МенеджерЗаписи = РегистрыСведений. СпособыОтраженияРасходовПоНалогам. СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Строка);
МенеджерЗаписи. Записать();
КонецЦикла;
Добрый день, уважаемые коллеги. У меня задача — выгрузить в таблицу значений данные выборки с запроса еще с обходом результатов значений по группировке
Результат=Запрос2. Выполнить();Вариант 1 Выборка = Результат. Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам,»ФизЛицо»); ТаблицаПросмотраОРЗ = Новый ТаблицаЗначений; ТаблицаПросмотраОРЗ. ЗаполнитьЗначения(Выборка); Результат — в ТЗ ничего нет.
В ТЗ не выгружается выборка даже без обхода результата то есть код Результат. Выбрать(); ТаблицаПросмотраОРЗ = Новый ТаблицаЗначений; ТаблицаПросмотраОРЗ. ЗаполнитьЗначения(Выборка); не работает!!
Вариант 2 Пока Выборка. Следующий() Цикл ТаблицаПросмотраОРЗ. ЗаполнитьЗначения(Выборка); КонецЦикла;Тоже в ТЗ ничего нет
Вариант 3 ТЗ = Результат. Выгрузить(ОбходРезультатаЗапроса. ПоГруппировкам,»ФизЛицо»); выдает ошибку слишком много фактических параметров.
Подскажите пожалуйста. Заранее благодарен. Удачи Вам
Пример кода, когда
нужно просто перенести результат запроса в таблицу значений без циклов и
дополнительной обработки результата.
Колонки в ТЗ должны
совпадать с наименованиями колонок в выгружаемом запросе, в этом случае
произойдет сопоставление результатов с колонками таблицы.
В качестве примера
возьмем таблицу значений, которая привязана к табличной части на форме.
Пример таблицы
значений, как реквизита формы:
Пример вывода
результата запроса в указанную таблицу значений:
Запрос = Новый Запрос;
Запрос. Текст =
Запрос. УстановитьПараметр(«Профиль», ЭтотОбъект. Профиль);
ЭтотОбъект. СписокДисциплин. Загрузить(Запрос. Выполнить(). Выгрузить());
В данном примере попробуем использовать таблицу значений, как источник данных для запроса.
Создаем таблицу значений и заполняем ее тестовыми данными:
Тут формируем запрос и передаем в качестве параметра нашу таблицу значений и выполняем запрос к ней.
Пробуем в отладчике посмотреть на результат запроса.
Теперь в запросе можно проводить разные операции с данными, отбирать, группировать и соединять.
Выгрузка Таблицы значений 1с
Реквизит типа Таблица Значений
Создаем команду заполнить
Модуль формы обработки
Отчет с данными для таблицы значений 1с
Настраиваем реквизит Результат
Перетаскиваем Реквизит на форму.
Форма перед загрузкой данных
Код запроса к регистру
Создание таблицы значений 1с
Записываем таблицу значений в данные формы 1с
Выгрузка результат запроса в таблицу значений 1с
Вывод: Нами создана обработка позволяющая из любого запроса передать данные на форму обработки в таблицу значений. Нами произведена выгрузка таблицы значений в элемент формы. При помощи обработки можно изменять данные находящиеся в таблице значений на форме.