Просмотр временных таблиц

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

Рассмотрим 4 способа получения этой информации.

Данные: в наличии имеется бесполезный запрос с двумя временными таблицами (“Подразделения”, “Пользователи”):

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

В результате отладки запроса вам вдруг понадобилось посмотреть, а что же хранится в этих временных таблицах. И тут вы поняли, что посмотреть это нереально, так как вы в этом ничего не понимаете. Стоп. Шутка. Все вы знаете. И так начнем.

Способ 1. Берем консоль запросов для разработчиков под управляемые формы, вставляем наш туда текст запроса и с помощью панели управления таблицами, выводим их в табличный документ:

Для обычных форм так же существуют консоли запросов, в которых можно просматривать временные таблицы. Для примера можете её взять из подсистемы “Инструменты разработчика”.

Способ 2. Используя процедуру многих типовых конфигураций: “ПоказатьВременнуюТаблицу”. Если в вашей конфигурации таковой не имеется, то приведу полное её описание (смело копируйте в свой общий модуль):

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

Процедура " ПоказатьВременнуюТаблицу()"
Процедура ” ПоказатьВременнуюТаблицу()”

Способ 3. Данный способ вытекает из предыдущего решения. Если мы внимательно посмотрим на содержимое процедуры “ПоказатьВременнуюТаблицу()”, то поймем, что для того что бы увидеть данные из временных таблиц, нам нужен “МенеджерВременныхТаблиц”. Из которого мы уже по индексу или с помощью поиска по наименования получим то, что нам нужно:

Так же содержимое можем и посмотреть при помощи отладки:

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

Способ 4. Как и предыдущий, данный способ так же подразумевает изменения в коде. Что бы посмотреть содержимое временных таблиц запроса, нужно выполнить его при помощи метода “ВыполнитьПакетСПромежуточнымиДанными()“:

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

Метод “ВыполнитьПакетСПромежуточнымиДанными”

Внимание! Не путайте данный метод с другим методом “ВыполнитьПакет()“, который вернет вам все тот же массив, но вместо данных, там будут храниться лишь количество элементов в этих таблицах:

Метод “ВыполнитьПакет()”

Надеюсь теперь вы без труда вытащите содержимое любого запроса и без проблем решите любую задачку. Всем удачи.

Все права на материалы интернет ресурс а принадлежат гап ресурс.

1 комментарий

  1. Голлум

    Наконец-то понятно, как с этим работать.спасибо

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

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