v8: Временные таблицы в 8.1 В 8.1. появились временные таблицы. Они хранятся на сервере и позволяют писать более простые запросы.
Временные таблицы хранятся в объекте типа Запрос. Когда этот объект уничтожается, уничтожаются и временные таблицы.
Чтобы создать временную таблицу, используется ключевое слово "ПОМЕСТИТЬ В", например:
ВЫБРАТЬ * ИЗ Справочник.Номенклатура ПОМЕСТИТЬ В ВТТовары
Временная таблица создается при выполнении запроса, если повторно выполнить запрос, то выдастся ошибка, что таблица уже существует.
Описания временных таблиц хранятся в свойстве запроса МенеджерВременныхТаблиц. К сожалению, в духе 1С, нельзя получить список временных таблиц, которые хранятся в запросе.
Пример, как можно выгрузить временную таблицу в таблицу значений, а заодно и как использовать менеджер временных таблиц:
Запрос=Новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Номенклатура ПОМЕСТИТЬ В ВТТовары");
Запрос.Выполнить(); //Создалась таблица ВТТовары
ЗапросТМП=Новый Запрос("ВЫБРАТЬ * ИЗ ВТТовары");
ЗапросТМП.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц; //Копируем ссылку на временные таблицы
ТЗ=ЗапросТМП.Выполнить.Выгрузить(); //Получаем временную таблицу в таблице значений
Недостатки временных таблиц:
1. Нельзя загрузить временную таблицу из таблицы значений
2. Если в тексте запроса есть временная таблица, то этот запрос не разбирается конструктором запроса (это ограничение можно обойти нештатно, используя объявление подзапроса).
3. Нельзя удалить временную таблицу.
4. Нельзя выполнить запрос над временной таблицей и поместить данные в нее же саму.
|