A1sQ.UnloadAllTemps
Назначение: выгрузить содержимое всех временных таблиц, зарегистрированных в TempTablesManager, в одну Структуру.
Ключ: ПолноеИмя каждой ВТ → значение: ТаблицаЗначений с данными (ВЫБРАТЬ *).
Ключ: ПолноеИмя каждой ВТ → значение: ТаблицаЗначений с данными (ВЫБРАТЬ *).
Сигнатура
Function UnloadAllTemps(TempManager) Export
Как работает (по исходному коду)
Результат = Новый Структура;
Если ТипЗнч(TempManager) <> Тип("TempTablesManager") Тогда
Возврат Результат;
КонецЕсли;
Для Каждого ИмяТаблицы Из TempManager.Tables Цикл
ПолноеИмяТаблицы = ИмяТаблицы.ПолноеИмя;
ТекстЗапроса = "ВЫБРАТЬ
| *
|ИЗ " + ПолноеИмяТаблицы + " КАК T";
Запрос = CreateQ(ТекстЗапроса, TempManager);
VT = Запрос.Выполнить().Выгрузить();
Результат.Вставить(ПолноеИмяТаблицы, VT);
КонецЦикла;
Возврат Результат;
Замечание по API менеджера: в комментарии к функции упомянуто свойство TemporaryTables, но код использует TempManager.Tables, где элементы имеют свойство ПолноеИмя. Ориентируйтесь на вашу реализацию/поставляемый менеджер в проекте.
Возвращает
Структура вида ПолноеИмяВТ → ТаблицаЗначений. Если менеджер не того типа — пустая структура.
Примеры
1) Диагностика: вывести размер каждой ВТ
Dump = A1sQ.UnloadAllTemps(TM);
Для Каждого Пара Из Dump Цикл
Сообщить(Пара.Ключ + ": " + Строка(Пара.Значение.Количество()) + " строк");
КонецЦикла;
2) Сохранить дампы ВТ в JSON (через A1sJ)
Dump = A1sQ.UnloadAllTemps(TM);
Для Каждого П Из Dump Цикл
JSON = A1sJ.FromVT(П.Значение); // пример: конвертация ТЗ → JSON
A1sS.SaveTextFile("c:\temp\" + П.Ключ + ".json", JSON);
КонецЦикла;
3) После отладки — убрать ВТ
Dump = A1sQ.UnloadAllTemps(TM);
// ... анализ данных ...
A1sQ.DestroyAllTemps(TM); TM = Неопределено;
Нюансы и ограничения
✅ Удобно для отладки и snapshot содержимого всех ВТ
✅ Возвращает читаемую структуру «имя → таблица»
❗ «ВЫБРАТЬ *» может быть тяжёлым по памяти на больших ВТ
❗ Исключения не перехватываются — при ошибке запроса/менеджера они всплывут
❗ Имя таблицы берётся как ПолноеИмя — ключи могут быть длинными/с префиксами
❗ Требуется корректный TempTablesManager с коллекцией Tables
Связанные функции
- UnloadTemp — выгрузить одну ВТ.
- DestroyAllTemps / DestroyTemp — очистка ВТ.
- ExecuteBatch — выполнение пакета с ВТ.
- CreateQWithTemps — запрос в контексте менеджера ВТ.