Простой отладчик запросов, умеющий записывать/считывать параметры, просматривать временные таблицы и еще...
Можно использовать пакеты запросов с выгрузкой во временные таблицы в запросе.
Обработка оформлена в виде пошагового мастера:
Первый шаг (вкладка "Запрос") - указание самого текста запроса. На этой странице имеется кнопка "Конструктор", вызывает стандартный конструктор запросов. Также можно сохранить/загрузить/отредактировать текст запроса. Можно скопировать текст из конфигуратора, не надо при этом удалять символы | - обработка сама их удалит. Также есть кнопка "Код запроса" - которая оформит текст запроса в виде кода, который можно вставить в конфигуратор.
Второй шаг (вкладка "Параметры") - настройка параметров отчета. Здесь также имеется кнопка "Загрузить..." с помощью которой можно загрузить параметры из файла, но для этого параметры надо предварительно выгрузить. Как это делается - чуть позже...
Третий шаг (вкладка "Результат") - просмотр результата запроса. Результат выводится в табличное поле как таблица или дерево значений. Можно вывести в печатную форму. Также есть кнопка - просмотр временных таблиц (в случае если выполнялся пакет запросов со выгрузкой в промежуточные таблицы).
25.10.2011 - обновлен интерфейс, более удобное заполнение параметров запроса (выбор типа) + возможность указывать в параметрах массив, список или таблицу значений. Добавлена возможность сохранять/считывать параметры запроса.
Воспользовавшись поиском по ИС (по подсказке пользователя Поручик) нашел целый ряд публикаций по теме:
Приведу неполный список :
- Запросник (автор: tezin)
- Консоль запросов с просмотром временных таблиц для 8.1 (автор: proal)
- Универсальная консоль отчетов (автор: Evg-Lylyk)
- Шаблон для отчета СКД (автор: coder1cv8)
- Консоль запросов (еще 1) (автор: skiller3000)
- Очередная консоль запросов (замеры, ВТ, IntelliSense) (автор: vhd)
- Консоль запросов (ИР) (автор: acsent)
- Удобная консоль запросов (автор: pipi)
- Еще одна консоль запросов + возможность подключения внешних модулей из файла (автор: Legavaz)
- СКД против запроса с итогами (автор: Ish_2)
- СКД против "ручного" кодинга (автор: Ish_2)
- [8.2] Управляемая консоль отчетов (только управляемые формы) (автор: Evg-Lylyk)
- Обработка Помощник для написания запроса в тонком клиенте (автор: boln)
- Нестандартный синтаксис оператора "ВЫБОР" в запросе (автор: ll13)
- Недокументированный синтаксис оператора "В" (автор: German)
Повторюсь: список неполный. То есть есть еще... и много... И после моей публикации еще будут - я уверен.
Да, здесь есть действительно "мощные" разработки! Особенно впечатлили 1, 6, 5. Есть на что посмотреть - и однозначно я буду черпать оттуда идеи для дальнейшего развития.
Постараюсь объяснить почему я пользуюсь своей обработкой (и почему я ее здесь положил):
Вот несколько моих жизненных ситуаций:
- нужно как можно быстрее разработать отчет на запросе, не требующий детальной настройки - как универсальный отчет, при этом желательно "на лету" протестировать какой результат будет давать запрос.
- Открыл обработку - в конструкторе собрал запрос
- Жму "Выполнить" - заполняю параметры
- Еще раз "Выполнить" - смотрю что вышло в результате
- Жму "Код запроса" - копирую текст запроса.
- Создаю внешний отчет - пихаю туда текст запроса и небольшой код по созданию построителя отчета и оформлению результата.
- Отчет построенный на запросе дает неверные данные.
- Документ заполняется неправильно, при отладке дошли до процедуры, в которой находится пакетный мегазапрос на три с лишним страницы кода. Кто переносил ЗУП с ЗиК - наверняка сталкивались. Выделяю в модуле текст запроса и копирую
- Открываю свой отладчик запросов, вставляю текст.
- Нажимаю "Выполнить".
- Заполняю значения параметров. Если их немного - вручную. Если много и они сложны - то выгружаю из отладчика.
- Жму еще раз "Выполнить" - и получаю результат.
- Все это делается очень быстро, без лишних телодвижений...
На все про все пол-часа, максимум час.
Далее - в зависимости от ситуации:
- "играю" с параметрами - меняю и смотрю что на что влияет...
- модифицирую (обычно, упрощаю) текст запроса, смотрю в конструкторе из каких источников собираются данные
- изменяю текст запроса так, чтобы вывел список документов-регистраторов для записей - и ищу "виновника"...
процесс обычно занимает до нескольких часов (когда примерно знаю где искать - то быстрее).
В общем, обработка сделана так - чтобы не тратить время на просмотр списка ранее сохраненных запросов, а сосредоточиться на отладке одного конкретного. При этом все, что нужно собрано в одном окне в четырех вкладках. Потому и называется "Выполнение и отладка запросов" (а точнее назвать будет "Выполнение и отладка запроса").
Как загрузить параметры из файла (и зачем это надо):
Используется при отладке запросов, особенно в типовых конфигурациях - например ЗУП, когда нужно разобраться откуда в пакете запросов получился тот или иной результат. Технология довольно сложная, но решения проще я пока не нашел (часто это гораздо быстрее, чем указывать параметры "вручную"):
- Открыть обработку, нажать на 2-й странице "Загрузить...", при этом обработка в области уведомлений выдаст строку, наподобие:
ВнешниеОтчеты.ПолучитьФорму("I:\ОтладчикЗапросов\ВыполнениеЗапроса_82.erf", "ВыгрузкаПараметровЗапроса").ВыгрузитьПараметры(Запрос)
и вопрос "Прочитать параметры из файла?" - поскольку файла пока еще нет, нажимаем "Нет".
- Запускается отладка и ставится точка останова на строке "Запрос.Выполнить(.........", затем выполняются в программе действия, пока не дойдет до точки останова. Тогда надо вызвать в отладчике "Вычислить выражение" (Shift + F9) и ввести код для вычисления, который выдала нам обработка на шаге 1. В результате выполнения должно выдать имя файла, куда выгрузились параметры. Это имя нам не особо нужно, т.к. обработка сама найдет откуда надо считывать...
- Продолжить выполнение (или завершить отладку - решать вам).
- Перейти в обработку "ВыполнениеЗапроса", скопировать-вставить текст запроса из изучаемой процедуры, перейти на вкладку "Параметры", там нажать кнопку "Загрузить..." и на вопрос "Прочитать параметры из файла?" - теперь нажимаем "Да".Обработка загрузит все параметры, даже массивы и таблицы/списки значений (такие параметры нельзя указать из табличной части).
- Нажимаем "Выполнить", затем смотрим результат выполнения и при необходимости - временные таблицы.