A1sCode библиотека 1С

A1sQ.Build

Назначение: собрать итоговый текст и получить Query из полей билдера.
Поведение: соблюдает порядок 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