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

A1sQ.GetTemps

Назначение: получить новый TempTablesManager — менеджер временных таблиц запроса.
Типовой сценарий: работа с пакетами, где есть ПОМЕСТИТЬ/УНИЧТОЖИТЬ, и 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.