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

A1sQ.DestroyTemp

Назначение: уничтожить одну временную таблицу, зарегистрированную в переданном TempTablesManager.
Как делает: выполняет пакет УНИЧТОЖИТЬ ИмяВТ; через запрос с менеджером ВТ.

Сигнатура

Function DestroyTemp(TempManager, TableName) Export

Как работает (по исходному коду)

Если ТипЗнч(TempManager) <> Тип("TempTablesManager") Тогда
    Возврат Ложь;
КонецЕсли;
// Пакет с одной инструкцией «УНИЧТОЖИТЬ»
Текст  = "УНИЧТОЖИТЬ " + TableName + ";";
Запрос = A1sQ.CreateQWithTemps(Текст, TempManager);
Запрос.ВыполнитьПакет();
Возврат Истина;
Исключения не перехватываются: если таблицы с таким именем нет в менеджере или имя некорректно, ВыполнитьПакет() бросит ошибку. Оборачивайте вызов в Попытка/Исключение, если нужна «тихая» очистка.

Параметры

  • TempManager — экземпляр TempTablesManager, в чьём контексте создана временная таблица.
  • TableName — имя временной таблицы (идентификатор из языка запросов 1С, как правило без пробелов и спецсимволов).

Возвращает

БулевоИстина, если пакет выполнен; Ложь, если TempManager не того типа.

Примеры

1) Уничтожить конкретную ВТ

// После использования временной таблицы ВТ_Ссылки
A1sQ.DestroyTemp(TempManager, "ВТ_Ссылки");

2) Создать, использовать и удалить

// Создали ВТ
A1sQ.CreateTempTable("ПОМЕСТИТЬ ВТ_IDs КАК
|ВЫБРАТЬ Ссылка
|ИЗ Справочник.Номенклатура
|ГДЕ НЕ ПометкаУдаления", "ВТ_IDs");
// ... использовали ВТ_IDs в нескольких запросах ...
A1sQ.DestroyTemp(TempManager, "ВТ_IDs");

3) Удалить всё сразу — DestroyAllTemps

A1sQ.DestroyAllTemps(TempManager); // быстрее, если ВТ много

Нюансы и ограничения

✅ Быстро удаляет одну ВТ без перебора списка
✅ Работает через пакет — безопасно внутри контекста TempTablesManager
❗ Не проверяет существование ВТ — ошибка всплывёт на ВыполнитьПакет()
❗ Имя должно быть корректным идентификатором в языке запросов
❗ Возвращает Ложь только при неправильном типе менеджера; прочие ошибки — исключения