A1sQ.CreateQ
Назначение: быстро создать Запрос с опциональным текстом и, при наличии, привязать TempTablesManager.
Когда использовать: базовый «ничего лишнего» конструктор, когда не нужна авто‑валидация/автогенерация менеджера ВТ.
Поведение: текст просто присваивается; установка TempTablesManager выполняется в Попытка/Исключение и не бросает ошибку наружу.
Когда использовать: базовый «ничего лишнего» конструктор, когда не нужна авто‑валидация/автогенерация менеджера ВТ.
Поведение: текст просто присваивается; установка TempTablesManager выполняется в Попытка/Исключение и не бросает ошибку наружу.
Сигнатура
Function CreateQ(QueryText = Undefined, TempTablesManager = Undefined) Export
Как работает
// Псевдокод
Функция CreateQ(Текст = Неопределено, МенеджерВТ = Неопределено) Экспорт
Q = Новый Запрос;
Если Текст <> Неопределено И Текст <> "" Тогда
Q.Текст = Текст;
КонецЕсли;
Попытка
Если МенеджерВТ <> Неопределено Тогда
Q.МенеджерВременныхТаблиц = МенеджерВТ;
КонецЕсли;
Исключение
// Молча продолжаем без МенеджераВТ
КонецПопытки;
Возврат Q;
КонецФункции
Параметры
- QueryText (опционально) — строка 1С‑запроса, попадает в Q.Текст.
- TempTablesManager (опционально) — общий менеджер ВТ для разделения временных таблиц между запросами.
Возвращает
Запрос — пустой либо уже с заданным текстом и (если получилось) привязанным менеджером ВТ.
Примеры
1) Базовый случай
Q = A1sQ.CreateQ("ВЫБРАТЬ &X КАК Значение");
Q.УстановитьПараметр("X", 5);
ТЗ = Q.Выполнить().Выгрузить();
2) Совместное использование ВТ
Temps = A1sQ.GetTemps();
Q1 = A1sQ.CreateQ("ВЫБРАТЬ 1 КАК ID ПОМЕСТИТЬ ВТ_IDs", Temps);
Q1.Выполнить();
Q2 = A1sQ.CreateQ("ВЫБРАТЬ * ИЗ ВТ_IDs", Temps);
S = Q2.Выполнить().Выбрать();
3) Быстро создать новый запрос с теми же параметрами
Q1 = A1sQ.CreateQ("ВЫБРАТЬ 1 КАК X");
Q1.УстановитьПараметр("X", 10);
Q2 = A1sQ.CreateAndLoad("ВЫБРАТЬ &X КАК X", Q1); // перенесёт значения параметров
ТЗ = Q2.Выполнить().Выгрузить();
Нюансы
- Валидации текста нет. Ошибки синтаксиса выявятся только на Выполнить(). Для предчека — CreateQSafe/Validate/IsValid.
- Менеджер ВТ опционален. Если привязать не удалось, запрос всё равно будет создан и выполнится без ВТ.
- Жизненный цикл ВТ. Чтобы одна ВТ была видна нескольким запросам — используйте один и тот же менеджер.
Сравнение
| Функция | Когда выбирать |
|---|---|
| CreateQ | Минимум действий, вы сами настраиваете параметры/валидацию. |
| CreateQEnhanced | Нужно логирование проблем с TTM и/или авто‑создание ВТ. |
| CreateAndLoad | Есть исходный запрос; хотите быстро перенести его параметры. |
| BuildQ | Нужно сразу расставить позиционные параметры Value1..Value8. |
Связанные функции
- A1sQ.BuildQ — конструктор с позиционными параметрами.
- A1sQ.BuildQByParams — установка параметров по именам.
- A1sQ.CreateQEnhanced — расширенный конструктор.
- A1sQ.CreateAndLoad — создать и перенести параметры.
До / После
| Без A1s | С A1s |
|---|---|
|
|