Для чего временные таблицы в 1с

Использование временных таблиц

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. В общем случае, временные таблицы рекомендуется использовать для повышения производительности и стабильности выполнения запросов. Их можно использовать для других целей (например, для улучшения архитектуры кода), но при этом, нужно понимать, что это может в некоторых случаях приводить к снижению производительности.

2. Есть ситуации, когда временные таблицы не следует создавать или создание временных таблиц необходимо минимизировать.

2.1. Не следует создавать временные таблицы с очень большим объемом данных (сотни тысяч записей). Иначе это приведет к существенному снижению производительности при записи и исчерпанию свободного места на диске. Если алгоритму требуется работать с большим объемом данных, то он должен выполнять обработку этих данных порциями.

2.2. Следует максимально ограничивать количество данных, выбираемых во временную таблицу. Не следует помещать во временную таблицу больше данных, чем требуется последующим запросам.

2.3. Не следует помещать во временную таблицу поля, которые не используются в последующих запросах, т.к. время и место для их размещения тратится впустую.

2.4. Не следует создавать и удалять временные таблицы в цикле, если можно создать одну временную таблицу до выполнения цикла.

2.5. Не следует копировать одну временную таблицу в другую только ради того, чтобы переименовать первую таблицу во вторую. Вместо этого, следует передавать имя таблицы.

3. Временные таблицы следует всегда индексировать, когда это даст прирост производительности.

3.1. Индекс следует строить если:

3.2. Маленькие временные таблицы индексировать не нужно (менее 1000 записей).

3.3. Если условий выбора или соединений с временной таблицей больше одного, и только одно из них проверяется часто, то индекс следует строить для наиболее часто проверяемого условия.

Источник

Временные таблицы в запросах 1С 8.3

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Временная таблица

Временные таблицы можно использовать, чтобы не выбирать данные из какой-то таблицы несколько раз. Один раз выбрали их, поместили во временную таблицу и дальше используем уже временную таблицу.

Создается временная таблица с помощью ключевого слова ПОМЕСТИТЬ:

В данном примере выборка из справочника Бренды будет помещена во временную таблицу ВТБренды, а уже потом данные будут выбраны из временной таблицы.

При создании новой временной таблицы она не сохраняется в базе данных. В файловой базе временные таблицы хранятся в оперативной памяти, в MS SQL Server в специальной служебной базе TempDB.

Также временные таблицы можно использовать для оптимизации работы СУБД. Если вместо временной таблицы использовать вложенный запрос, то оптимизатор не будет знать сколько строк в этой таблице и не сможет оптимизировать план запроса. В случае использования временной таблицы количество строк будет известно, что позволит лучше оптимизировать план запроса.

Но у временных таблиц есть и свои минусы:

Менеджер временных таблиц

Менеджер временных таблиц позволяет управлять временными таблицами. Один менеджер временных таблиц может управлять несколькими временными таблицами, но имена временных таблиц в пределах одного менеджера не должны совпадать.

Создать менеджер временных таблиц можно с помощью конструктора:

Источник

Временные таблицы в 1С

Предположим, нужно получить данные из двух регистров накопления. Данные из одного регистра поместим во временную таблицу:

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Запрос, использующий временную таблицу, будет иметь вид:

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Время «жизни» временной таблицы:

В обоих случаях временная таблиц может быть уничтожена и ранее этого, с помощью (соответственно):

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Программная обработка временных таблиц в 1С

Временные таблицы можно обрабатывать программно, для чего используется объект метаданных «Менеджер временных таблиц«. С его помощью можно «перехватывать» таблицы из запроса и передавать между процедурами.

Временную таблицу можно получить из другого запроса. Для этого предназначена кнопка «Создать описание временной таблицы»:

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Особенности работы с временными таблицами 1С

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Менеджер временных таблиц в запросах 1С

Многие знают, что временные таблицы используются в пакетах запросов, когда нужно сначала одним запросом получить какую-то информацию, а потом обработать ее уже с помощью другого запроса и получить результат. Таким образом, менеджеры временных таблиц существуют у любых запросов.

Но что делать, когда использования пакетного запроса недостаточно для решения задачи? Например, когда после создания временной таблицы требуется произвести какие-то действия с помощью встроенного языка 1С и только после этого получить окончательный результат запроса. Или, когда временная таблица должна быть получена различными способами, в зависимости от некоторых условий.

Очевидно, что в этих случаях нужно, чтобы различные запросы использовали один и тот же менеджер временных таблиц. Рассмотрим методы работы с менеджером временных таблиц в запросах 1С.

Как создать менеджер временных таблиц

Как назначить менеджер временных в запрос 1С

//создадим запрос
запрос = новый запрос ;

Как добавить временную таблицу в менеджер

Для того чтобы добавить временную таблицу в запрос, нужно выполнить запрос в режиме Создание временной таблицы, назначив ему менеджер временных таблиц.

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Как удалить временную таблицу из менеджера

Для этого нужно создать запрос на уничтожение временной таблицы и выполнить его.

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Как использовать таблицы из менеджера временных таблиц в запросах 1С

К сожалению, конструктор запроса не может видеть временные таблицы из менеджера. Поэтому запрос к временной таблице нужно либо писать вручную, либо все-таки воспользоваться конструктором, но указать в нем структуру временной таблицы.

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

После этого можно как обычно составить и выполнить запрос к временной таблице, не забывая подключать общий менеджер временных таблиц.

Источник

Для чего временные таблицы в 1с

Для чего временные таблицы в 1с. Смотреть фото Для чего временные таблицы в 1с. Смотреть картинку Для чего временные таблицы в 1с. Картинка про Для чего временные таблицы в 1с. Фото Для чего временные таблицы в 1с

Временные таблицы в 8.1

Использование временных таблиц в 8.1Автор статьи: Гений 1С | Редакторы: Sol78, ILM, zag2art, Alex_Sun, Kreont
Последняя редакция №16 от 09.08.10 | История
URL: http://kb.mista.ru/article.php?id=628

В 8.1. появились временные таблицы. Они хранятся на сервере и позволяют писать более простые запросы.
Временные таблицы хранятся в объекте типа МенеджерВременныхТаблиц. Когда этот объект уничтожается, уничтожаются и временные таблицы.
Чтобы создать временную таблицу, используется ключевое слово «ПОМЕСТИТЬ В», например:

Временная таблица создается при выполнении запроса, если повторно выполнить запрос, то выдастся ошибка, что таблица уже существует.

Описания временных таблиц хранятся в свойстве запроса МенеджерВременныхТаблиц. К сожалению, в духе 1С, нельзя получить список временных таблиц, которые хранятся в запросе.

Пример, как можно выгрузить временную таблицу в таблицу значений, а заодно и как использовать менеджер временных таблиц:

Вместо перечисления списка полей можно использовать «ВЫБРАТЬ *».

От zag2art
Если есть ТЗ, в каждой колонке которой значения всего одного типа, для типизации колонок, можно воспользоваться функцией:
[1с]
Процедура ТипизацияТЗ(ТЗ) Экспорт
РезультатТЗ = новый ТаблицаЗначений;
Для Каждого Колонка из ТЗ.Колонки Цикл
Имя = Колонка.Имя;
МассивТипов = новый Массив(1);
МассивТипов[0] = ТипЗнч(ТЗ[0][Имя]);
Описатель = новый ОписаниеТипов(МассивТипов);
РезультатТЗ.Колонки.Добавить(Имя, Описатель);
КонецЦикла;

Для каждого Строка из ТЗ Цикл
СтрокаРез = РезультатТЗ.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРез, Строка);
КонецЦикла;

ТЗ = РезультатТЗ.Скопировать();
КонецПроцедуры
[/1с]

Функция для просмотра ВТ в отладчике

Вот как получить список всех ВТ, не знаю. Видимо никак.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *