Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Планируется в 8.3.25
Как известно, временная таблица создается при выполнении запроса с помощью предложения ПОМЕСТИТЬ, идущего после перечисления полей в инструкции ВЫБРАТЬ. Имя временной таблицы идет после ПОМЕСТИТЬ, а её структура определяется структурой самого запроса.
Такой запрос
ВЫБРАТЬ
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Справочник.Номенклатура КАК Номенклатура
;
создаст временную таблицу ВТ_Товары с полями Код и Наименование.
Добавить данные в уже созданную временную таблицу нельзя. Если мы захотим сложить в ВТ_Товары ещё и содержимое справочника Услуги:
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Справочник.Номенклатура КАК Номенклатура
;
ВЫБРАТЬ
Услуги.Код КАК Код,
Услуги.Наименование КАК Наименование
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Справочник.Услуги КАК Услуги
;
В версии 8.3.25 появится возможность добавлять данные в уже существующую временную таблицу с помощью предложения ДОБАВИТЬ (ADD):
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Справочник.Номенклатура КАК Номенклатура
;
ВЫБРАТЬ
Услуги.Код КАК Код,
Услуги.Наименование КАК Наименование
ДОБАВИТЬ ВТ_Товары
ИЗ
Справочник.Услуги КАК Услуги
;
Возможность добавлять данные в существующую временную таблицу позволит в ряде сценариев сократить количество «однотипных» временных таблиц в запросе, сделать текст запроса более читаемым, а исполнение запроса – более эффективным.
Для временной таблицы можно будет создавать несколько индексов для ускорения поиска по временной таблице. Для предложения ИНДЕКСИРОВАТЬ ПО будет реализовано расширение НАБОРАМ (SETS):
ИНДЕКСИРОВАТЬ ПО НАБОРАМ ((НаборПолей1)[ ,(НаборПолей2)[,…]])
Пример:
ВЫБРАТЬ
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.Артикул КАК Артикул
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Справочник.Номенклатура КАК Номенклатура
ИНДЕКСИРОВАТЬ ПО НАБОРАМ (
(Код, Наименование),
(Артикул)
)
Во временной таблице ВТ_Товары будут созданы два индекса – по двум полям (Код, Наименование) и по одному полю (Артикул).
Создавать индексы можно будет только при первом помещении данных во временную таблицу.
Для предложений ИНДЕКСИРОВАТЬ ПО будет реализована опция УНИКАЛЬНО (UNIQUE). При её использовании будет создан уникальный индекс.
ВЫБРАТЬ
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.Артикул КАК Артикул
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
Справочник.Номенклатура КАК Номенклатура
ИНДЕКСИРОВАТЬ ПО НАБОРАМ (
(Код, Наименование) УНИКАЛЬНО,
(Артикул)
)
Встроенный язык будет расширен для поддержки новой функциональности. Конструктор запросов также будет доработан.
Надеемся, что новая функциональность позволит вам ещё эффективнее использовать такой мощный механизм, как временные таблицы.