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

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/ВыполнитьПакет не перехватываются — оборачивайте в Попытка/Исключение
❗ Не удаляет реальные объекты БД — только временные таблицы менеджера