A1sQ.QT
Назначение: собрать строку запроса 1С вида ВЫБРАТЬ … ИЗ … [ГДЕ …].
Что делает: простая конкатенация — SELECT + FROM и опционально WHERE, если Condition «заполнен».
Где применять: как кирпичик для BuildByQT, ExecuteByQT, UnloadByQT, либо для быстрого конструирования QueryText.
Что делает: простая конкатенация — SELECT + FROM и опционально WHERE, если Condition «заполнен».
Где применять: как кирпичик для BuildByQT, ExecuteByQT, UnloadByQT, либо для быстрого конструирования QueryText.
Сигнатура
Function QT(WhatToSelect, FromWhereSelect, Condition = Undefined) Export
Как работает
// Реализация максимально простая:
QT = "ВЫБРАТЬ " + WhatToSelect + " ИЗ " + FromWhereSelect;
Если ValueIsFilled(Condition) Тогда
QT = QT + " ГДЕ " + Condition;
КонецЕсли;
Возврат QT;
Параметры
- WhatToSelect — список полей после ВЫБРАТЬ (например: "T.Ссылка, T.Наименование").
- FromWhereSelect — источник после ИЗ (например: "Справочник.Номенклатура КАК T").
- Condition — выражение после ключевого слова ГДЕ (без самого слова «ГДЕ»). Пустое/Неопределено — WHERE не добавляется.
Возвращает
String — готовый QueryText, пригодный для Запрос.Текст или функций ExecuteQ/Unload.
Примеры
1) Минимальный
QT = A1sQ.QT("Ссылка, Наименование", "Справочник.Номенклатура");
Q = A1sQ.CreateQ(QT);
ТЗ = Q.Выполнить().Выгрузить();
2) С условием (Condition)
QT = A1sQ.QT(
"Ссылка, Наименование",
"Справочник.Номенклатура КАК Ном",
"Ном.Родитель = &Родитель И НЕ Ном.ПометкаУдаления"
);
ТЗ = A1sQ.Unload(QT, Родитель);
3) Добавить сортировку/агрегацию после QT
QT = A1sQ.QT("Ссылка, Наименование", "Справочник.Номенклатура", "НЕ ПометкаУдаления")
+ " УПОРЯДОЧИТЬ ПО Наименование";
ТЗ = A1sQ.Unload(QT);
4) Использование в BuildByQT / ExecuteByQT
Q = A1sQ.BuildByQT("Ссылка, Наименование", "Справочник.Номенклатура", "Наименование ПОДОБНО &Текст", "%кабель%");
S = A1sQ.ExecuteByQT("Ссылка", "Справочник.Пользователи", "ИдентификаторПользователяИБ = &UID", UID);
ТЗ = A1sQ.UnloadByQT("Ссылка, Дата", "Документ.РеализацияТоваровУслуг", "Дата МЕЖДУ &D1 И &D2", Начало, Конец);
Нюансы и ограничения
✅ Не добавляет переносы строк — чистая строка запроса
✅ WHERE добавится только если Condition «заполнен» (ValueIsFilled)
❗ В Condition НЕ пишите слово «ГДЕ» — функция добавит его сама
❗ QT не вставляет GROUP BY / HAVING / ORDER BY — добавляйте вручную после результата
❗ Нет валидации: если поля/источник пустые или с ошибками — ошибка будет на Выполнить()
❗ Строки склеиваются «как есть» — следите за пробелами внутри аргументов
Связанные функции
- BuildByQT — собрать Запрос из QT и расставить параметры.
- ExecuteByQT — безопасно выполнить QT и получить курсор.
- UnloadByQT — безопасно выгрузить QT в ТаблицаЗначений.
- CombineQT — объединить два QT через «ОБЪЕДИНИТЬ ВСЕ».
- BuildQ / ExecuteQ / Unload — работа с готовым текстом.