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

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

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

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

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

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

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

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

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

100

См. также

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

Где индекс это порядковый номер временной таблицы
FarhadIlyazov; Brusev; 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; +42 Ответить
5. vladismi 160 24.04.18 16:54 Сейчас в теме
(3) Как вариант:

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

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

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

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

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

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

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

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

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


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