Выполнение и отладка запроса

Простой отладчик запросов, умеющий записывать/считывать параметры, просматривать временные таблицы и еще...

Можно использовать пакеты запросов с выгрузкой во временные таблицы в запросе.

  Обработ Тарифы на абонементка оформлена в виде пошагового мастера: 

Первый шаг (вкладка "Запрос") - указание самого текста запроса. На этой странице имеется кнопка "Конструктор", вызывает стандартный конструктор запросов. Также можно сохраншаблонить/загрузить/отредактировать текст запроса. Можно скопировать текст из конфигуратора, не надо при этом удалять символы | - обработ Тарифы на абонементка сама их удалит. Также есть кнопка "Код запроса" - которая оформит текст запроса в виде кода, который можно вставить в конфигуратор.

Второй шаг (вкладка "Параметры") - настройка параметров отчета. Здесь также имеется кнопка "Загрузить..." с помощью которой можно загрузить параметры из файла, но для этого параметры надо предварительно выгрузить. Как это делается - чуть позже...

Третий шаг (вкладка "Результат") - просмотр результата запроса. Результат выводится в табличное поле как таблица или дерево значений. Можно вывести в печатную форму. Также есть кнопка - просмотр временных таблиц (в случае если выполнялся пакет запросов со выгрузкой в промежуточные таблицы).


25.10.2011 - обновлен интерфейс, более удобное заполнение параметров запроса (выбор типа) + возможность указывать в параметрах массив, список или таблицу значений. Добавлена возможность сохраншаблонять/считывать параметры запроса.

Воспользовавшись поиском по ИС (по подсказке пользователя Поручик) нашел целый ряд публикаций по теме:
Приведу неполный список :

  1.  Запросник (автор: tezin) 
  2.  Консоль запросов с просмотром временных таблиц для 8.1 (автор: proal) 
  3.  Универсальная консоль отчетов (автор: Evg-Lylyk) 
  4.  Шаблон для отчета СКД (автор: coder1cv8)
  5.  Консоль запросов (еще 1)  (автор: skiller3000)    
  6.  Очередная консоль запросов (замеры, ВТ, IntelliSense)  (автор: vhd)    
  7.  Консоль запросов (ИР) (автор: acsent)   
  8.  Удобная консоль запросов  (автор: pipi) 
  9.  Еще одна консоль запросов + возможность подключения внешних модулей из файла  (автор: Legavaz)  
  10.  СКД против запроса с итогами  (автор: Ish_2) 
  11.  СКД против "ручного" кодинга (автор: Ish_2)   
  12.  [8.2] Управляемая консоль отчетов (только управляемые формы)  (автор: Evg-Lylyk) 
  13.  Обработ Тарифы на абонементка Помощник для написания запроса в тонком клиенте   (автор: boln) 
  14.  Нестандартный синтаксис оператора "ВЫБОР" в запросе   (автор: ll13) 
  15.  Недокументированный синтаксис оператора "В"   (автор: German)

Повторюсь: список неполный. То есть есть еще... и много... И после моей публикации еще будут - я уверентехничское.

Да, здесь есть действительно "мощные" разработ Тарифы на абонементки! Особенно впечатлили 1, 6, 5. Есть на что посмотреть - и однозначно я буду черпать оттуда идеи для дальнейшего развития. 

Постараюсь объяснить почему я пользуюсь своей обработ Тарифы на абонементкой (и почему я ее здесь положил):

Вот несколько моих жизненных ситуаций: 

  1. нужно как можно быстрее разработ Тарифы на абонементать отчет на запросе, не требующий детальной настройки - как универсальный отчет, при этом желательно "на лету" протестировать какой результат будет давать запрос.
    • Открыл обработ Тарифы на абонементку - в конструкторе собрал запрос
    • Жму "Выполнить" - заполняю параметры
    • Еще раз "Выполнить" - смотрю что вышло в результате 
    • Жму "Код запроса" - копирую текст запроса.
    • Создаю внешний отчет - пихаю туда текст запроса и небольшой код по созданию построителя отчета и оформлению результата.

    На все про все пол-часа, максимум час. 

  2. Отчет программу 1С построенный на запросе дает неверные данные.
  3. Документ заполняется неправильно, при отладке дошли до процедуры, в которой находится пакетный мегазапрос на три с лишним страницы кода. Кто переносил ЗУП с ЗиК - наверняка сталкивались.
  4. Выделяю в модуле текст запроса и копирую
    • Открываю свой отладчик запросов, вставляю текст.
    • Нажимаю "Выполнить".
    • Заполняю значения параметров. Если их немного - вручную. Если много и они сложны - то выгружаю из отладчика.
    • Жму еще раз "Выполнить" - и получаю результат.
    • Все это делается очень быстро, без лишних телодвижений...

Далее - в зависимости от ситуации:

  1. "играю" с параметрами - меняю и смотрю что на что влияет...
  2. модифицирую (обычно, упрощаю) текст запроса, смотрю в конструкторе из каких источников собираются данные
  3. изменяю текст запроса так, чтобы вывел список документов-регистраторов для записей - и ищу "виновника"...

процесс обычно занимает до нескольких часов (когда примерно знаю где искать - то быстрее).


В общем, обработ Тарифы на абонементка сделана так - чтобы не тратить время на просмотр списка ранее сохраншаблоненных запросов, а сосредоточиться на отладке одного конкретного. При этом все, что нужно собрано в одном окне в четырех вкладках. Потому и называется "Выполнение и отладка запросов" (а точнее назвать будет "Выполнение и отладка запроса").

 

Как загрузить параметры из файла (и зачем это надо):

Используется при отладке запросов, особенно в типовых конфигурациях - например ЗУП, когда нужно разобраться откуда в пакете запросов получился тот или иной результат. Технология довольно сложная, но решения проще я пока не нашел (часто это гораздо быстрее, чем указывать параметры "вручную"):

  1. Открыть  обработ Тарифы на абонементку, нажать на 2-й странице "Загрузить...", при этом обработ Тарифы на абонементка в области уведомлений выдаст строку, наподобие:
    ВнешниеОтчет программу 1С ы.ПолучитьФорму("I:\ОтладчикЗапросов\ВыполнениеЗапроса_82.erf", "ВыгрузкаПараметровЗапроса").ВыгрузитьПараметры(Запрос)
    и вопрос "Прочитать параметры из файла?" - поскольку файла пока еще нет, нажимаем "Нет".
  2. Запускается отладка и ставится точка останова на строке "Запрос.Выполнить(.........", затем выполняются в программе действия, пока не дойдет до точки останова. Тогда надо вызвать в отладчике "Вычислить выражение" (Shift + F9) и ввести код для вычисления, который выдала нам обработ Тарифы на абонементка на шаге 1. В результате выполнения должно выдать имя файла, куда выгрузились параметры. Это имя нам не особо нужно, т.к. обработ Тарифы на абонементка сама найдет откуда надо считывать...
  3. Продолжить выполнение (или завершить отладку - решать вам).
  4. Перейти в обработ Тарифы на абонементку "ВыполнениеЗапроса", скопировать-вставить текст запроса из изучаемой процедуры, перейти на вкладку "Параметры", там нажать кнопку "Загрузить..." и на вопрос  "Прочитать параметры из файла?" - теперь нажимаем "Да".Обработ Тарифы на абонементка загрузит все параметры, даже массивы и таблицы/списки значений (такие параметры нельзя указать из табличной части).
  5. Нажимаем "Выполнить", затем смотрим результат выполнения и при необходимости - временные таблицы.

Скриншоты


Страница 1

Страница 2

Страница 3

Страница 4

Картинка2_4.png

Картинка3.png

Картинка4.png

Файлы

Наименование Файл Версия Размер Кол. Скачив.
ВыполнениеЗапроса_82.erf
.erf 48,26Kb
260
.erf 48,26Kb 260 Скачать

Полная версия

© ООО "Инфостарт", 2006-2023 www.infostart.ru