Простой отладчик запросов, умеющий записывать/считывать параметры, просматривать временные таблицы и еще…
Можно использовать пакеты запросов с выгрузкой во временные таблицы в запросе.
Обработка оформлена в виде пошагового мастера:
Первый шаг (вкладка «Запрос») — указание самого текста запроса. На этой странице имеется кнопка «Конструктор», вызывает стандартный конструктор запросов. Также можно сохранить/загрузить/отредактировать текст запроса. Можно скопировать текст из конфигуратора, не надо при этом удалять символы | — обработка сама их удалит. Также есть кнопка «Код запроса» — которая оформит текст запроса в виде кода, который можно вставить в конфигуратор.
Второй шаг (вкладка «Параметры») — настройка параметров отчета. Здесь также имеется кнопка «Загрузить…» с помощью которой можно загрузить параметры из файла, но для этого параметры надо предварительно выгрузить. Как это делается — чуть позже…
Третий шаг (вкладка «Результат») — просмотр результата запроса. Результат выводится в табличное поле как таблица или дерево значений. Можно вывести в печатную форму. Также есть кнопка — просмотр временных таблиц (в случае если выполнялся пакет запросов со выгрузкой в промежуточные таблицы).
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. В результате выполнения должно выдать имя файла, куда выгрузились параметры. Это имя нам не особо нужно, т.к. обработка сама найдет откуда надо считывать…
- Продолжить выполнение (или завершить отладку — решать вам).
- Перейти в обработку «ВыполнениеЗапроса», скопировать-вставить текст запроса из изучаемой процедуры, перейти на вкладку «Параметры», там нажать кнопку «Загрузить…» и на вопрос «Прочитать параметры из файла?» — теперь нажимаем «Да».Обработка загрузит все параметры, даже массивы и таблицы/списки значений (такие параметры нельзя указать из табличной части).
- Нажимаем «Выполнить«, затем смотрим результат выполнения и при необходимости — временные таблицы.
(0) Не вижу достоинств и преимуществ перед другими подобными консолями запросов.
(1) Простота использования и минимум излишеств.
Делалось для себя — изначально для простой и быстрой отладки запросов, когда разрабатывал отчеты (при внедрении), но оказалось весьма полезным — при анализе запросов от 1С.
В будущем, возможно углубление в сторону парсинга запроса — разбивать сложные запросы (с соединениями) на несколько простых и собирать обратно.
По моему усложненная консоль не так уж сложна. Работает как часы.
Обновлен интерфейс, более удобное заполнение параметров запроса (выбор типа) + возможность указывать в параметрах массив, список или таблицу значений. Добавлена возможность сохранять/считывать параметры запроса.
(2) (4) Ваше право, но изобретаете новую модель велосипеда с треугольными колёсами со штырём вместо сиденья. Удобных консолей запросов с возможностью отладки, просмотра ВТ, обработки результатов, etc тут чуть больше, чем до … много.
(5) Тогда посоветуйте парочку… Может действительно — есть получше.
(6) Ссылок не помню, пишу названия публикаций
Запросник от tezin
Дополненная типовая обработка консоль запросов от lavelin
Консоль запросов от lavelin с модификацией от proal (Консоль запросов с просмотром временных таблиц)
Консоль запросов от Чистова
Консоль запросов для отладки запросов на лету + работа с временными таблицами
Консоль запросов (замеры, ВТ, IntelliSense)
Может пригодится:http://chistov.spb.ru/publ/2-1-0-9
1. Может стоит на основную формы повесить кнопку для копирования в буфер текста, который потом нуна будет вставлять в конфигураторе. (пускай эта кнопка будет н большая, но это на много удобней чем лазить в справку)
2. Если сразу после копирования в буфер текста попытаться вставить его в Shift+F9, то чет подвисает 1С и через некоторое время буфер очищается а если предварительно вставить его в txt или на форму отчета, тогда все ок сработает. У вас такого не было?
(10) 1. Можно… сделаю это на странице, куда выводится код запроса.
2. Такая проблема не возникала. Если используете терминальный сеанс, например Citrix — то проблема может быть в самом терминальном клиенте (отключить настройку синхронизации буферов обмена — должно помочь).
Такая проблема не возникала.
вобщем ХЗ тогда. Попробую может на другом компьютере, но я пробвал на локальной базе………
Ошибка при выполнении запроса:
{Форма.ФормаОтчета.Форма(12)}: Поле объекта не обнаружено (ТипЗначения)
Давно искал консоль с работающей возможностью задавать тип параметров запроса …. Аллилуйа!!!
Давно искал консоль с работающей возможностью задавать тип параметров запроса …. Аллилуйа!!!
Спасибо
по-моему запросник пункт 1. выполняет все ваши задачи..если нет-напишите чего там не хватает по вашему..
Ошибка при выполнении запроса:
{Форма.ФормаОтчета.Форма(12)}: Поле объекта не обнаружено (ТипЗначения)
/************************************************************************************************************
ВЫБРАТЬ
ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
ОсновныеНачисленияРаботниковОрганизаций.Результат
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
ОсновныеНачисленияРаботниковОрганизаций.Сотрудник В
(ВЫБРАТЬ
РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонДата, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))
/************************************************************************************************************
Параметр:
Имя Тип Значение
КонДата Дата 31.05.2012 0:00:00
/*************************************************************************************************************
ОБЫЧНАЯ КОНСОЛЬ ОТРАБАТЫВАЕТ БЕЗ ОШИБОК
(18) скоро будет обновление — там все уже исправлено.
+ наработки по отладке запроса
+ панель «обработка результата» (программный код), например, для перепроведения документов…
+ генератор модуля универсального отчета
+ если хватит времени — руководство.
кое-что уже сделано, кое-что в разработке… ориентировочно обновление будет через неделю, но может быть и раньше.