A1sQ.IsEmptyResult
Назначение: быстро понять, пуст ли результат запроса.
Особенность: при любой ошибке выполнения функция возвращает Истина и пишет в лог.
Особенность: при любой ошибке выполнения функция возвращает Истина и пишет в лог.
Сигнатура
Function IsEmptyResult(QueryText, Value1 = Undefined, Value2 = Undefined, Value3 = Undefined, Value4 = Undefined, Value5 = Undefined, Value6 = Undefined, Value7 = Undefined, Value8 = Undefined) Export
Как работает (по исходному коду)
Try //⚠
Selection = ExecuteQ(QueryText, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8);
Return Not Selection.Следующий(); //↩
Except
A1sS.Print("IsEmptyResult: ошибка выполнения запроса: " + ErrorDescription());
Return True; //↩ Считаем, что если ошибка — результата нет
EndTry;
Параметры
- QueryText — текст запроса ВЫБРАТЬ ....
- Value1..Value8 — значения параметров, если в тексте встречаются &Имя.
Возвращает
Булево: Истина, если выборка пуста или возникла ошибка; Ложь, если найдено хотя бы одна строка.
Примеры
// 1) Проверка: есть ли активные пользователи
Если A1sQ.IsEmptyResult("ВЫБРАТЬ Ссылка ИЗ Справочник.Пользователи ГДЕ НЕ Заблокирован") Тогда
Сообщить("Активных пользователей нет");
Иначе
Сообщить("Нашлись активные пользователи");
КонецЕсли;
// 2) С параметром
ЕстьДокументы = Не A1sQ.IsEmptyResult("
|ВЫБРАТЬ Ссылка
|ИЗ Документ.ПоступлениеТоваровУслуг
|ГДЕ Дата МЕЖДУ &D1 И &D2", НачалоПериода, КонецПериода);
Нюансы и ограничения
✅ Очень быстрая проверка: выполняет запрос и делает один вызов .Следующий()
✅ Удобна в условной логике (if/else)
❗ При ошибке вернёт Истина (считаем «результата нет») — это осознанная стратегия;
если нужна строгая проверка ошибок — используйте ExecuteQ и свой блок Попытка/Исключение
❗ Для больших выборок добавляйте «ПЕРВЫЕ 1» (или пользуйтесь ExistsQ), чтобы не тянуть лишние данные
Связанные функции
- IsNotEmptyResult — обратная проверка.
- ExistsQ — оптимизированная проверка существования.
- ExecuteQ — вернуть Selection для ручной проверки.