A1sQ.ResetTempManager
Назначение: завершить работу с временными таблицами: удалить все ВТ из менеджера и сбросить сам TempTablesManager.
Тип: Процедура — ничего не возвращает.
Тип: Процедура — ничего не возвращает.
Сигнатура
Процедура ResetTempManager(Знач TempManager) Экспорт
Как работает (по исходному коду)
Если ТипЗнч(TempManager) = Тип("TempTablesManager") Тогда
A1sQ.DestroyAllTemps(TempManager); // уничтожаем все ВТ
КонецЕсли;
// Сбрасываем переменную
TempManager = Неопределено;
Важный нюанс «Знач»: параметр объявлен с ключевым словом Знач (передача по значению). Поэтому присваивание TempManager = Неопределено происходит только внутри процедуры и не изменит переменную в вызывающем коде. Чтобы реально «обнулить» менеджер у себя, выполните TempManager = Неопределено; после вызова, либо измените процедуру, убрав Знач в своей копии.
Параметры
- TempManager — экземпляр TempTablesManager. Если это не тот тип — просто будет присвоено Неопределено локальной переменной, а ВТ не трогаются.
Примеры
1) Правильное завершение работы с ВТ
TM = Новый TempTablesManager;
// ... работа с пакетами/ВТ ...
A1sQ.ResetTempManager(TM);
// ВАЖНО: сбросить переменную у себя
TM = Неопределено;
2) То же, но вручную
A1sQ.DestroyAllTemps(TM);
TM = Неопределено;
3) С обработкой ошибок
Попытка
A1sQ.ResetTempManager(TM);
Исключение
A1sS.Print("ResetTempManager: " + ОписаниеОшибки());
Наконец
// Страховка на случай исключения до обнуления локального параметра
TM = Неопределено;
КонецПопытки;
Нюансы и ограничения
✅ Уничтожает все зарегистрированные в менеджере ВТ (через DestroyAllTemps)
✅ Простой способ закрыть жизненный цикл менеджера
❗ «Знач» в параметре — присваивание Неопределено не «видно» снаружи
❗ Исключения из DestroyAllTemps/ВыполнитьПакет не перехватываются — оборачивайте в Попытка/Исключение
❗ Не удаляет реальные объекты БД — только временные таблицы менеджера
Связанные функции
- DestroyAllTemps — удалить все ВТ одним пакетом.
- DestroyTemp — удалить одну ВТ.
- CreateQWithTemps — создать запрос в контексте TempTablesManager.
- CreateTempTable — создать временную таблицу.