На базе обработки с ИТС (обычное приложение).
Похожа на разработку http://infostart.ru/public/19577/, но предлагает более простой сценарий использования.
Позволяет "отловить" запрос с параметрами и временными таблицами во время отладки и перенести в консоль.
Платформа 8.3.5 и старше, обычное приложение.
Использование:
- Разместить обработку в каталоге, доступном при исполнении кода.
Для клиент-серверного варианта, каталог должен быть доступен по сети пользователю, под которым работает служба сервера 1с (либо разместить прямо на сервере). - Остановиться в отладчике перед выполнением запроса.
- Вычислить выражение:
ВнешниеОбработки.Создать("\ПутьКОбработкеКонсольЗапросов.epf").СериализоватьЗапрос(Запрос)
- Скопировать результат вычисления (строку XML) в буфер обмена.
- В режиме Предприятие вставить скопированный запрос по кнопке "Загрузить сериализованный" в контекстном меню дерева запросов.
- Всё, можно выполнять запрос.
Содержимое сохраненных временных таблиц можно просматривать по кнопке "Врем. таблицы".
Временные таблицы сохраняются в файл вместе с деревом запросов и загружаются из него.
При копировании запроса, временные таблицы тоже копируются.
Более никакими "фичами" консоль не обладает.
Алгоритм поиска имен временных таблиц в тексте запроса не идеален.
В частности, таблицы определяются только в предложении ИЗ, условия не анализируются.
В таких случаях, нужно явно перечислить имена временных таблиц:
ВнешниеОбработки.Создать("\КомпШараКонсольЗапросов.epf").СериализоватьЗапрос(Запрос, "Вт1, Вт2, Вт3")
Для работы с большими временными таблицами вам, скорее всего, потребуется доработать обработку, чтобы сериализовать в файл, а не в строку.
Я просто оставлюэто здесь . Поиск как известно не для простых смертных.
(1) webester, вы бы показали конкретно инструмент, который делает то же самое.
А так вы просто умничаете.
Я вот не нашел.
Везде либо назначение другое (не перехват запроса с ВТ в отладчике), либо нужно модифицировать конфигурацию, либо процесс применения существенно сложней.
А что, инструменты разработчика (в том числе портативные) перестали решать эту задачу?
(3) DenisCh, Не совсем по теме, но есть способ вытащить №-запрос или вирт.таблицу из запроса без всяких инструментов:
(2) я сделал немного больше, я сразу дал ссылку на огромный выбор таких инструментов и способов решения описанной в статье проблемы, но если вам сложно по ней пройти то вот к примеру:
http://infostart.ru/public/175229/
(4)Автор в (2) говорит, что читатьписать код это сложно. Функции там писать или что то еще, ну его… проще создавать внешние обработки.
То есть вот это вставить в «вычислить выражение» сложно(я сам не пробовал, я работаю только с измененными конфигурациями, но нет причин по которым не будет работать)
А то что предлагает автор нет. Кхм.. ну может быть. Сама фишка в том, что он сериализует в текст данные ВТ как я понял.
(3) DenisCh, Решает. Но не всегда, потому что по-другому.
Там запрос переносится только в консоль запросов, запущенную в отлаживаемом сеансе.
Т.е., не встраивая подсистему, не разрешая использовать обычные формы в управляемом приложении, ничего не получится, т.к. консоль запросов в ИР — обычная форма.
У меня же можно остановиться в сеансе управляемого приложения, засериализовать запрос, а отлаживать в другом сеансе, запустив обычное приложение.
Кроме того, если вы не используете ИР, требуется гораздо большее время на «холодный» старт.
Я же предлагаю такую же «фичу» во всем привычной и многими любимой простой Консоли запросов с ИТС,
(5) webester, «Чукча не читатель, чукча писатель».
Моя обработка решают другую задачу:
Перенос запроса с параметрами и временными таблицами в «типовую» консоль запросов, и немедленное выполнение запроса в консоли.
Просмотр содержимого одной временной таблицы — это вопрос слишком простой и тривиальный, чтобы целую разработку публиковать. Кроме того, в современных типовых (УТ 11) уже есть для этого функция «ПоказатьВременнуюТаблицу» (в модуле СкладыСервер что ли).
(6) «не встраивая подсистему, не разрешая использовать обычные формы в управляемом приложении, ничего не получится, т.к. консоль запросов в ИР — обычная форма»
http://www.youtube.com/watch?v=hiw_aYVOvFc , подсистема — https://www.youtube.com/watch?v=54WwCC4j03U . Поэтому не обязательно строго в управляемом приложении открывать консоль запросов.
Не совсем так. В ИР (включая портативный) есть и режим отложенной отладки, когда отладка выполняется в другом сеансе асинхронно. Портативный —
В модуле объекта есть ошибка, нужно заменить на: Запрос.Текст = СтрокаИзМассиваПодстрок(Подзапросы, «;