A1sQ.GetParams
Назначение: перечислить параметры, обнаруженные в тексте запроса (&Имя), и при желании напечатать их в лог.
Под что удобно: подготовка к заполнению параметров через SetQParams или сборка структуры для типизации.
Под что удобно: подготовка к заполнению параметров через SetQParams или сборка структуры для типизации.
Сигнатура
Function GetParams(Query, PrintParams = False) Export
Как работает (по исходному коду)
// Ищем параметры в тексте запроса (описания параметров)
Params = Query.FindParameters();
// При необходимости — печатаем их в лог (с номером, именем и типом)
If PrintParams Then
ParamNum = 1;
For Each qp In Params Do
A1sS.Print("Param #=" + ParamNum);
A1sS.Print("Name=" + qp.Имя + " Type=" + qp.ТипЗначения);
ParamNum = ParamNum + 1;
EndDo;
EndIf;
Return Params;
Что возвращают элементы коллекции: это описания параметров с по крайней мере двумя полями — Имя и ТипЗначения. Их можно использовать, чтобы сформировать правильные значения для SetQParams.
Параметры
- Query — объект Query с уже установленным текстом запроса.
- PrintParams — Булево. Если Истина, функция напечатает в лог список параметров (через A1sS.Print).
Возвращает
Коллекцию описаний параметров запроса (перечень, поддерживающий цикл Для каждого).
Примеры
1) Быстро посмотреть параметры запроса
Q = A1sQ.CreateQ("ВЫБРАТЬ ... ГДЕ Дата МЕЖДУ &D1 И &D2 И Организация = &Org");
A1sQ.GetParams(Q, Истина); // выведет #, имя и тип каждого параметра
2) Сформировать структуру значений под SetQParams
Q = A1sQ.CreateQ("... &D1 ... &D2 ... &Org ...");
Desc = A1sQ.GetParams(Q); // описание параметров
P = Новый Структура;
Для Каждого D Из Desc Цикл
// Инициализация по типу (пример хелпера)
Если D.ТипЗначения = Тип("Дата") Тогда
P.Вставить(D.Имя, ТекущаяДата());
ИначеЕсли D.ТипЗначения = Тип("Строка") Тогда
P.Вставить(D.Имя, "");
Иначе
P.Вставить(D.Имя, Неопределено);
КонецЕсли;
КонецЦикла;
A1sQ.SetQParams(Q, P);
3) Интерактивная подсказка пользователю
Q = A1sQ.CreateQ(UserQueryText);
Desc = A1sQ.GetParams(Q);
Сообщить("Нужно заполнить: " + СтрСоединить(Массив(Desc, "Имя"), ", "));
Нюансы и ограничения
✅ Удобно для подсветки и валидации параметров пользовательских запросов
✅ Печать имён и типов помогает не промахнуться с SetQParams
❗ Функция не устанавливает значения параметров — только перечисляет
❗ Типы берутся из синтаксического анализа — финальная проверка произойдёт при Выполнить()
❗ Для получения именно «структуры значений» используйте GetQParams (если нужна другая форма)
Связанные функции
- SetQParams — установка значений параметров в Query.
- ParseParams — выделить параметры из произвольного текста (по шаблону).
- GetQParams — альтернативная выдача параметров.
- CreateQ — создать Query.