A1sQ.GetTemps
Назначение: получить новый TempTablesManager — менеджер временных таблиц запроса.
Типовой сценарий: работа с пакетами, где есть ПОМЕСТИТЬ/УНИЧТОЖИТЬ, и Diagnostic‑dump содержимого ВТ.
Типовой сценарий: работа с пакетами, где есть ПОМЕСТИТЬ/УНИЧТОЖИТЬ, и Diagnostic‑dump содержимого ВТ.
Сигнатура
Function GetTemps() Export
Как работает (по исходному коду)
Возврат Новый TempTablesManager;
Возвращает
TempTablesManager — готовый к использованию экземпляр.
Примеры
1) Создать менеджер и выполнить пакет
TM = A1sQ.GetTemps();
QT = "
|ПОМЕСТИТЬ ВТ_Ссылки КАК ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура;
|ВЫБРАТЬ * ИЗ ВТ_Ссылки;";
Q = A1sQ.CreateQ(QT, TM);
ТЗ = Q.ВыполнитьПакет()[0].Выгрузить();
A1sQ.DestroyAllTemps(TM); TM = Неопределено;
2) Повторное использование одного менеджера
TM = A1sQ.GetTemps();
Tables = A1sQ.UnloadBatch("ПОМЕСТИТЬ ВТ_A КАК ...; ВЫБРАТЬ * ИЗ ВТ_A;", TM);
Еще = A1sQ.ExecuteBatch("ПОМЕСТИТЬ ВТ_B КАК ...; ВЫБРАТЬ * ИЗ ВТ_B;", TM);
A1sQ.DestroyAllTemps(TM); TM = Неопределено;
3) Диагностика содержимого всех ВТ
TM = A1sQ.GetTemps();
// ... создавались ВТ ...
Dump = A1sQ.UnloadAllTemps(TM);
Для Каждого П Из Dump Цикл
Сообщить(П.Ключ + ": " + Строка(П.Значение.Количество()) + " строк");
КонецЦикла;
A1sQ.DestroyAllTemps(TM);
Лучшие практики
- Один TM — несколько операций. Создавайте менеджер один раз на сценарий/юнит работы, чтобы избегать лишнего создания/очистки.
- Всегда убирайте ВТ. По окончании — DestroyAllTemps и обнуляйте ссылку (ResetTempManager помогает не забыть).
- Привязка к запросу. Передавайте TM в CreateQ или используйте CreateQWithTemps.
- Снэпшоты для отладки. Для просмотра содержимого используйте UnloadTemp/UnloadAllTemps.
Связанные функции
- CreateQWithTemps — Query с привязанным TM.
- DestroyAllTemps / DestroyTemp — уборка ВТ.
- ExecuteBatch / UnloadBatch — выполнение пакетов.
- UnloadTemp / UnloadAllTemps — выгрузка содержимого ВТ.
- ResetTempManager — удалить ВТ и сбросить менеджер.