A1sQ.DestroyAllTemps
Назначение: гарантированно уничтожить все временные таблицы, зарегистрированные в переданном TempTablesManager.
Как делает: формирует список имён и выполняет пакет УНИЧТОЖИТЬ name1, name2, …;
Как делает: формирует список имён и выполняет пакет УНИЧТОЖИТЬ name1, name2, …;
Сигнатура
Function DestroyAllTemps(TempManager) Export
Как работает (по исходному коду)
Если ТипЗнч(TempManager) <> Тип("TempTablesManager") Тогда
Возврат Ложь;
КонецЕсли;
// Собираем все имена ВТ через запятую
Список = "";
Для Каждого ИмяТаблицы Из TempManager.TemporaryTables Цикл
Если Список = "" Тогда
Список = ИмяТаблицы;
Иначе
Список = Список + ", " + ИмяТаблицы;
КонецЕсли;
КонецЦикла;
Если Список = "" Тогда
Возврат Ложь; // нечего уничтожать
КонецЕсли;
// Уничтожаем все за один пакет
Текст = "УНИЧТОЖИТЬ " + Список + ";";
Запрос = A1sQ.CreateQWithTemps(Текст, TempManager);
Запрос.ВыполнитьПакет();
Возврат Истина;
Важно: функция не ловит исключения. Если ВыполнитьПакет() вернёт ошибку, она всплывёт вызывающему коду. Вызывайте из Попытка/Исключение, если нужна «тихая» очистка.
Возвращает
Булево — Истина, если пакет выполнен; Ложь, если TempManager не того типа или в нём не оказалось таблиц.
Примеры
1) Очистить все ВТ после сложной процедуры
Попытка
// ... работа с несколькими ВТ ...
Наконец
A1sQ.DestroyAllTemps(TempManager);
КонецПопытки;
2) Безопасный сброс менеджера
Процедура ResetTempManager(Знач TempManager) Экспорт
Если ТипЗнч(TempManager) = Тип("TempTablesManager") Тогда
A1sQ.DestroyAllTemps(TempManager);
КонецЕсли;
TempManager = Неопределено;
КонецПроцедуры
3) Уничтожить одну ВТ — используйте DestroyTemp
Успех = A1sQ.DestroyTemp(TempManager, "ВТ_Ссылки");
Нюансы и ограничения
✅ Работает по всем зарегистрированным в менеджере временным таблицам
✅ Делает это одним пакетом (быстрее, чем по одной)
❗ Исключения не ловятся — оборачивайте в Попытка/Исключение при необходимости
❗ Возвращает Ложь, если менеджер — не TempTablesManager, либо нет таблиц
❗ Не удаляет «настоящие» объекты БД: только временные таблицы менеджера
Связанные функции
- DestroyTemp — уничтожить одну временную таблицу.
- CreateTempTable — создать ВТ.
- CreateQWithTemps — создать Запрос c TempTablesManager.
- ResetTempManager — очистить и сбросить менеджер (включает DestroyAllTemps).