Подобные решения уже существуют, но в случае большого объема данных просмотреть временные таблицы в отладчике не очень удобно из торомозов, поэтому как выход из ситуации — сохранение в Excel.
Порядок работы:
1. Вставляем код в серверный общий модуль (либо создаем свой)
2. Ставим отчку остановки в нужном месте и выполням функцию (два параметра — Запрос и СохранитьВExcel) см. рис 2
в случае сохранения — на рабочем столе функция создаст папку VT_temp и поместит туда файлы.
Нужно быть внимательным, если стоит уничтожить временную таблицу, то она не будет показана.
Код:
ПолучитьСписокВТ(ТекстЗапроса) …
Процедура ЗаписатьВТ(ИмяТаблицы, Результат, Каталог) …
Функция ПросмотрВременныхТаблиц(Запрос, СохранитьВExcel = Ложь) Экспорт
МассивВТ = ПолучитьСписокВТ(Запрос.Текст);
МассивТаблиц = Новый Структура;
МенеджерУстановлен = Истина;
Если Запрос.МенеджерВременныхТаблиц = Неопределено Тогда
МенеджерУстановлен = Ложь;
КонецЕсли;
ЗапросВТ = Новый Запрос;
Если НЕ МенеджерУстановлен Тогда
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.ВыполнитьПакет();
ЗапросВТ.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Иначе
ЗапросВТ.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
КонецЕсли;
Если СохранитьВExcel Тогда
Попытка
// на рабочий стол
WSS = Новый COMОбъект(«WScript.Shell»);
ПутьКРабочемуСтолу = WSS.SpecialFolders().Item(«Desktop»);
Каталог = «VT_temp»;
СоздатьКаталог(ПутьКРабочемуСтолу + Каталог);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Для Каждого ИмяТаблицы из МассивВТ Цикл
ЗапросВТ.Текст = «ВЫБРАТЬ * ИЗ » + ИмяТаблицы;
Попытка
Результат = ЗапросВТ.Выполнить().Выгрузить();
МассивТаблиц.Вставить(ИмяТаблицы, Результат);
Если СохранитьВExcel Тогда
ЗаписатьВТ(ИмяТаблицы, Результат, ПутьКРабочемуСтолу + Каталог + «»);
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
Продолжить;
КонецПопытки;
КонецЦикла;
Если НЕ МенеджерУстановлен Тогда
Запрос.МенеджерВременныхТаблиц.Закрыть();
КонецЕсли;
Возврат МассивТаблиц;
КонецФункции
Скапитаню — сохранение в серверном общем модуле на рабочий стол сохранит файлы на сервер.
Выводы очевидны.
Если вывалилось исключение при создании сом-объекта, имеет смысл прерывать процедуру.
Но за идею — плюс.
Еще как идея сохранять таблицы одного запроса не в разные файлы-таблицы, а в разные листы в пределах одного файла.