Многие знают, что временные таблицы используются в пакетах запросов, когда нужно сначала одним запросом получить какую-то информацию, а потом обработать ее уже с помощью другого запроса и получить результат. Таким образом, менеджеры временных таблиц существуют у любых запросов.
Но что делать, когда использования пакетного запроса недостаточно для решения задачи? Например, когда после создания временной таблицы требуется произвести какие-то действия с помощью встроенного языка 1С и только после этого получить окончательный результат запроса. Или, когда временная таблица должна быть получена различными способами, в зависимости от некоторых условий.
Очевидно, что в этих случаях нужно, чтобы различные запросы использовали один и тот же менеджер временных таблиц. Рассмотрим методы работы с менеджером временных таблиц в запросах 1С.
Как создать менеджер временных таблиц
Как назначить менеджер временных в запрос 1С
запрос = новый запрос;
//Назначим созданный ранее менеджер временных таблиц
запрос.МенеджерВременныхТаблиц = МВТ;
Как добавить временную таблицу в менеджер
Для того чтобы добавить временную таблицу в запрос, нужно выполнить запрос в режиме Создание временной таблицы, назначив ему менеджер временных таблиц.
запрос = новый запрос;
запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ1
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";
Результат = запрос.Выполнить();
Как удалить временную таблицу из менеджера
Для этого нужно создать запрос на уничтожение временной таблицы и выполнить его.
запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст ="УНИЧТОЖИТЬ ВТ1";
Результат = запрос.Выполнить();
Как использовать таблицы из менеджера временных таблиц в запросах 1С
К сожалению, конструктор запроса не может видеть временные таблицы из менеджера. Поэтому запрос к временной таблице нужно либо писать вручную, либо все-таки воспользоваться конструктором, но указать в нем структуру временной таблицы.
После этого можно как обычно составить и выполнить запрос к временной таблице, не забывая подключать общий менеджер временных таблиц.
запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст ="ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ1.Ссылка) КАК КоличествоКонтрагентов
|ИЗ
| ВТ1 КАК ВТ1";
Результат = запрос.Выполнить().Выбрать();
Большое спасибо! Доступно и понятно!
цель создания менеджера врем таблиц?
Цель в том, чтобы лишний раз не выполнять запрос, результат которого используется другим запросом.
Сохраняем результат в менеджере временных таблиц и потом просто вытаскиваем его оттуда. Экономим тем самым время и ресурсы.