A1sQ.Build
Назначение: собрать итоговый текст и получить Query из полей билдера.
Поведение: соблюдает порядок TOP → SELECT → FROM → WHERE → GROUP → ORDER и применяет Builder.Parameters через SetQParams.
Поведение: соблюдает порядок TOP → SELECT → FROM → WHERE → GROUP → ORDER и применяет Builder.Parameters через SetQParams.
Сигнатура
Function Build(Builder) Export
Как работает (по исходному коду)
QueryText = "ВЫБРАТЬ ";
If ValueIsFilled(Builder.TopClause) Then
QueryText = QueryText + Builder.TopClause + " ";
EndIf;
QueryText = QueryText + Builder.Fields + " ИЗ " + Builder.FromClause;
If ValueIsFilled(Builder.WhereClause) Then
QueryText = QueryText + " ГДЕ " + Builder.WhereClause;
EndIf;
If ValueIsFilled(Builder.GroupClause) Then
QueryText = QueryText + " СГРУППИРОВАТЬ ПО " + Builder.GroupClause;
EndIf;
If ValueIsFilled(Builder.OrderClause) Then
QueryText = QueryText + " УПОРЯДОЧИТЬ ПО " + Builder.OrderClause;
EndIf;
Query = CreateQ(QueryText);
SetQParams(Query, Builder.Parameters);
Return Query;
Параметры
- Builder — структура билдера с полями Fields/FromClause/WhereClause/GroupClause/OrderClause/TopClause/Parameters.
Возвращает
Query — готовый к выполнению.
Примеры
B = A1sQ.Select("Ссылка, Наименование")
.From("Справочник.Номенклатура КАК Ном")
.Where("Ном.Родитель = &Parent")
.WithParam("Parent", Родитель)
.OrderBy("Наименование");
Q = A1sQ.Build(B);
ТЗ = Q.Выполнить().Выгрузить();
Нюансы и ограничения
✅ Централизованная сборка текста запроса
✅ Параметры из Builder.Parameters применяются автоматически
❗ Поле GroupClause задаётся вручную — отдельного метода нет
❗ Build не выполняет запрос — он только создаёт Query