Просмотр временных таблиц запроса в отладчике без изменения кода

Программирование - Практика программирования

Данный способ можно использовать для просмотра содержимого временных таблиц запросов (менеджеров временных таблиц) без внесения изменений в код.

После выполнения запроса с созданием временной таблицы ставим точку останова и открываем для просмотра объект Запрос (Shift+F9).

Меняем Текст запроса на "Выбрать * ИЗ {НазваниеВременнойТаблицы}", где {НазваниеВременнойТаблицы} - это имя временной таблицы, которую необходимо просмотреть (в моём случае это ВТСотрудникиДляПечатиТрудовыхДоговоров). 

Далее в диалоговом окне "Выражение" пишем "Запрос.Выполнить().Выгрузить()" (без кавычек) и жмем Рассчитать - получаем таблицу значений с данными временной таблицы.

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

Вот и всё! Надеюсь, кому-нибудь пригодится:)

См. также

Комментарии
1. Кирилл Юферев (taiimer) 24.04.18 11:51 Сейчас в теме
Спасибо, очень полезная тема, часто приходилось изворачиваться и придумывать велосипед!
2. Сергей Афонкин (Pixar0000) 24.04.18 11:55 Сейчас в теме
Вообще-то для этого есть Консоль запросов в которой отлаживаешь запрос как хочешь, а потом переносиш в код
19. Айрат (Craig) 188 29.04.18 03:28 Сейчас в теме
(2) Ну- Ну, попробуй в ЗУПе консоль запроса использовать, когда тысяча и одна временная таблица формируют промежуточный итог, а тебе нужно посмотреть, только этот маленький промежуточный итог.
3. Дмитрий Васильев (dandykry) 4 24.04.18 12:02 Сейчас в теме
Запрос.МенеджерВременныхТаблиц.Таблицы[Индекс].ПолучитьДанные().Выгрузить()

Где индекс это порядковый номер временной таблицы
Meson; bforce; ProgrammistC; manlak; Gizmo_esu; mike1970; Danila-Master; veretennikoff; gucci76; Krio2; Brawler; PetrPan; Ziggurat; abadonna83; kuntashov; nikita0832; Artem-B; artfa; vvr908; PVG_73; antz; stoptime; DmitrySinichnikov; AlexGroovy; LeXXuS_ju; andron77777; elvira17; fxmike; rpgshnik; HAMMER_59; rusmil; madonov; SerVer1C; Shaldryn; kiruha; vladismi; Art1387; A_Max; user705522_constantin_h; CyberCerber; +40 Ответить
5. Владимир (vladismi) 160 24.04.18 16:54 Сейчас в теме
(3) Как вариант:

Запрос.МенеджерВременныхТаблиц.Таблицы.Найти(<Имя временной таблицы>).ПолучитьДанные().Выгрузить()

Индекс временной таблицы может меняться, а вот имя никогда...
romankoav; spezc; manlak; mike1970; Danila-Master; brr; Krio2; abadonna83; fxmike; kiruha; +10 Ответить
10. Дмитрий Васильев (dandykry) 4 25.04.18 08:24 Сейчас в теме
(5) Как угодно, все зависит от ситуации. Мне проще посмотреть Запрос.МенеджерВременныхТаблиц.Таблицы и посмотреть индекс. Это удобство.

ВыполнитьПакетСПромежуточнымиДанными() - когда хочется посмотреть все таблицы и проанализировать. Все находится перед глазами. Особенно хорошо, когда временных таблиц не много, иначе все равно приходится копаться в них. В таком случае в табло отладки интересующие таблицы удобнее вставить.

Запрос.МенеджерВременныхТаблиц.Таблицы.Найти(<Имя временной таблицы>).ПолучитьДанные().Выгрузить() - когда видишь текст запроса, видишь имя таблицы, а индекс понять сложно.

Своя функция в общем модуле или метод автора - Если 8.2 и ранние 8.3, то метод автора или своя процедура в общем модуле. С появлением расширений в 8.3.6 можно обойтись экспортной функцией в обработке.

Хорошо знать инструменты и использовать их в нужный момент.
P.S. Лично я не догадывался, что можно хитрить с текстом запроса. Буду использовать в других случаях.
molodoi1sneg; +1 Ответить
6. Антон Балабанов (balanton) 141 24.04.18 17:39 Сейчас в теме
(3)
Таблицы[Индекс]

можно и не Индекс, а имя таблицы
9. Сергей Беликов (HAMMER_59) 34 25.04.18 07:00 Сейчас в теме
Комментарии лучше чем сама статья.
На текущий вариант при отладке пользуюсь вариантом предложенным (3), получаю результаты через менеджер временных таблиц, но без изменения текста запрос не всегда получается обойтись, т.к. некоторые временные таблицы уничтожаются.
Непонятно как поступает метод ВыполнитьПакетСПромежуточнымиДанными() предложенный (4), возможно, выгружает все таблицы, тогда такой вариант это то что нужно.
4. Константин Гейнрих (CyberCerber) 183 24.04.18 12:12 Сейчас в теме
А еще можно, нажав Shift+F9, обратиться к переменной Запрос, и вызвать ее метод "ВыполнитьПакетСПромежуточнымиДанными()". Там будет массив результатов со всеми временными таблицами.
spezc; the1; Огонек; PVG_73; fxmike; tupa38; frkbvfnjh; unichkin; TSSV; kiruha; Dream_kz; Art1387; user774630; A_Max; корум; Ponommax; user705522_constantin_h; Ivan_Sol; kudlach; dandykry; +20 Ответить
8. Андрей Лукин (frkbvfnjh) 329 25.04.18 05:37 Сейчас в теме
(4) Это самый лаконичный и правильный вариант на мой взгляд для новых версий платформы, но вариант автора как я понял будет работать даже в 8.1.
13. Дмитрий Синичников (DmitrySinichnikov) 135 25.04.18 10:31 Сейчас в теме
(8) Ну давайте еще под 7х будем варианты всякие писать)))
7. Роман Уничкин (unichkin) 925 24.04.18 19:21 Сейчас в теме
Давным давно еще был прием, когда в общем модуле есть отладочная функция, типа такой:
Функция ПросмотрВТ(Запрос, ИмяВременнойТаблицы) Экспорт

 ЗапросТМП = Новый Запрос("ВЫБРАТЬ * ИЗ " + ИмяВременнойТаблицы);
 ЗапросТМП.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
 Возврат ЗапросТМП.Выполнить().Выгрузить();

КонецФункции
Показать


Но на самом деле и это - фигня.. После того как я узнал про отложенную отладку в ИР, все это ни к чему.
brr; zqzq; CSiER; PetrPan; tormozit; v_id; bashinsky; +7 Ответить
14. Дамир Закиров (Dzenn) 222 25.04.18 16:26 Сейчас в теме
18. Maxim Kolkin (the1) 311 28.04.18 12:12 Сейчас в теме
В 8.3 можно расширение с общим модулем прикрутить для просмотра ВТ, ну и вызывать по SHIFT+F9 расчет
Отладка.ПолучитьВТ(Запрос)
Оставьте свое сообщение