A1sQ.IsEmptyTable
Назначение: безопасно проверить, пуста ли ТаблицаЗначений (или корректно ли она передана).
Поведение: возвращает Истина, если значение Неопределено, либо это не ТаблицаЗначений (с записью в лог), либо количество строк = 0.
Поведение: возвращает Истина, если значение Неопределено, либо это не ТаблицаЗначений (с записью в лог), либо количество строк = 0.
Сигнатура
Function IsEmptyTable(Data) Export
Как работает (по исходному коду)
Если Data = Неопределено Тогда
Возврат Истина;
КонецЕсли;
Если ТипЗнч(Data) <> Тип("ТаблицаЗначений") Тогда
A1sS.Print("IsEmptyTable: ожидалась ТаблицаЗначений, получено " + ТипЗнч(Data));
Возврат Истина; // «считаем пустым» и не падаем
КонецЕсли;
Возврат Data.Количество() = 0;
Это «мягкая» проверка: функция считает пустым всё, что не ТаблицаЗначений, и пишет предупреждение в лог. Если нужен «строгий» режим (ошибка при неверном типе) — проверяйте тип заранее.
Параметры
- Data — значение, которое предполагается как ТаблицаЗначений (например, результат Unload).
Возвращает
Булево — Истина, если таблица отсутствует/не того типа/без строк; Ложь — если есть хотя бы одна строка.
Примеры
1) После Unload
ТЗ = A1sQ.Unload("ВЫБРАТЬ * ИЗ Справочник.Номенклатура");
Если A1sQ.IsEmptyTable(ТЗ) Тогда
Сообщить("Номенклатура пуста");
Иначе
Сообщить("Найдено строк: " + Строка(ТЗ.Количество()));
КонецЕсли;
2) Безопасная защита от Неопределено
ТЗ = (Условие ? ПолучитьТаблицу() : Неопределено);
Если A1sQ.IsEmptyTable(ТЗ) Тогда Возврат; КонецЕсли;
// ... работа с непустой таблицей ...
3) Строгая ветка с проверкой типа
Если ТипЗнч(ТЗ) <> Тип("ТаблицаЗначений") Тогда
ВызватьИсключение("Ожидалась ТаблицаЗначений");
КонецЕсли;
Если A1sQ.IsEmptyTable(ТЗ) Тогда Возврат; КонецЕсли;
Нюансы и ограничения
✅ Не бросает исключений при Неопределено/неверном типе — просто пишет в лог
✅ Удобно ставить «сторожем» перед обработкой данных
❗ Проверяет только число строк, не состав колонок и не наличие значимых данных
❗ Для строгой типизации — проверяйте ТипЗнч сами до вызова
❗ Лог-сообщения идут через A1sS.Print (смотрите настройки логирования проекта)
Связанные функции
- Unload / UnloadByQT — источники ТаблицаЗначений.
- IsNotEmptyResult / ExistsQ — проверить «есть ли строки» на стороне БД до выгрузки.