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