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

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