A1sQ.UnloadTemp
Назначение: получить ТаблицаЗначений из одной временной таблицы, созданной в контексте TempTablesManager.
Как делает: выполняет ВЫБРАТЬ * ИЗ <ИмяВТ> в привязке к менеджеру ВТ и возвращает выгрузку результата.
Как делает: выполняет ВЫБРАТЬ * ИЗ <ИмяВТ> в привязке к менеджеру ВТ и возвращает выгрузку результата.
Сигнатура
Function UnloadTemp(TempManager, TableName) Export
Как работает (по исходному коду)
Если ТипЗнч(TempManager) <> Тип("TempTablesManager") Тогда
Возврат Неопределено;
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ
| *
|ИЗ " + TableName + " КАК T";
Запрос = CreateQ(ТекстЗапроса, TempManager);
Таб = Запрос.Выполнить().Выгрузить();
Возврат Таб;
Параметры
- TempManager — экземпляр TempTablesManager, в чьём контексте создана ВТ.
- TableName — имя временной таблицы. Обычно это то же имя, что использовалось в ПОМЕСТИТЬ. В некоторых реализациях менеджера может потребоваться ПолноеИмя.
Возвращает
ТаблицаЗначений — содержимое ВТ. Если TempManager не того типа — Неопределено.
Примеры
1) Диагностика одной ВТ
VT = A1sQ.UnloadTemp(TM, "ВТ_Ссылки");
Если VT <> Неопределено Тогда
Сообщить("Строк: " + Строка(VT.Количество()));
КонецЕсли;
2) Экспорт в CSV
VT = A1sQ.UnloadTemp(TM, "ВТ_Результат");
Если VT <> Неопределено Тогда
A1sS.SaveVTAsCSV("c:\tmp\result.csv", VT);
КонецЕсли;
3) Проверка пустоты
VT = A1sQ.UnloadTemp(TM, "ВТ_Логи");
Если A1sQ.IsEmptyTable(VT) Тогда
Сообщить("ВТ пустая");
Иначе
Сообщить("Есть данные");
КонецЕсли;
Нюансы и ограничения
✅ Просто: «ВЫБРАТЬ *» из указанной ВТ
✅ Работает в контексте TempTablesManager (никаких прав на реальные таблицы не нужно)
❗ Память: «*» выгружает все колонки и все строки
❗ Имя таблицы должно соответствовать регистрации в менеджере (иногда требуется ПолноеИмя)
❗ Исключения при неверном имени/контексте не ловятся — оборачивайте вызов в Попытка/Исключение
Связанные функции
- UnloadAllTemps — выгрузить все ВТ сразу.
- DestroyTemp / DestroyAllTemps — очистка после диагностики.
- CreateQWithTemps — создание запроса с привязкой к менеджеру ВТ.