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

A1sQ.IsEmptyTable

Назначение: безопасно проверить, пуста ли ТаблицаЗначений (или корректно ли она передана).
Поведение: возвращает Истина, если значение Неопределено, либо это не ТаблицаЗначений (с записью в лог), либо количество строк = 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 — проверить «есть ли строки» на стороне БД до выгрузки.