КонЗап — консоль запросов с улучшенным интерфейсом и дополнительными функциями




Консоль запросов (Платформа 8.х режим — обычное приложение) с улучшенным интерфейсом и дополнительными функциями (загрузка параметров запроса из файла, работа с временными таблицами, замер времени выполнения, групповая обработка результатов запроса). Часть функций позаимствованы из других обработок, часть разработаны "с нуля".
Отличия от стандартной консоли запросов (расшифровка к скриншоту №2):

1. Таблица ввода параметров находится в главном окне.
2. Функция, позволяющая загрузить параметры запроса из файла. Файл с параметрами формируется из сеанса отладки в конфигураторе, сразу после заполнения параметров запроса в модуле по команде «Вычислить выражение…(Shift+F9)». Строка-подсказка для вставки в поле  «Вычислить выражение» выводится по нажатию на кнопку (?). По умолчанию, файл с параметрами имеет расширение *.par и создается в том же каталоге, в котором находится обработка.
3. Функция, позволяющая выполнить отдельно взятую временную таблицу запроса либо выделенный фрагмент запроса (вариант выбирается из списка).
4. Производится замер времени выполнения запроса с точностью до .000 сек., а также отображается количество строк в выборке.
5. В подвале табличной части результатов запроса подсчитываются итоги по колонкам с типом данных «Число».
6. Функции групповой обработки результатов запроса, которые позволяют производить действия, аналогичные действиям стандартной групповой обработки справочников и документов. Функция произвольной обработки результатов запроса (скриншот №3) позволяет написать  код алгоритма обработки реквизитов и выполнить его прямо в консоли запросов.
7. Возможность сформировать текст запроса с необходимой «обвязкой» и форматированием для вставки в модуль.
 8. Замер среднего времени выполнения запроса при его многократном выполнении. Запрос выполняется в цикле указанное количество раз и с указанным интервалом. Каждый результат отображается на графике и рассчитывается среднее время (скриншот №4).

17 Comments

  1. TrinitronOTV

    конструктор запроса в данной обработке может быть вызван?

    Reply
  2. serjpsv

    (1) TrinitronOTV, Да, как обычно, правой кнопкой на тексте запроса — конструктор запроса

    Reply
  3. fancy

    А временные таблицы показывает?

    Я пользуюсь консолью «Запросник 1С» от Владимира Тезина — очень помогает в работе

    Reply
  4. serjpsv

    (3) fancy, Да, на втором скриншоте поле выбора временных таблиц обведено под номером 3

    Reply
  5. aspirator23

    (4) Действительно, почти все есть, что нужно, в одном месте. Есть еще одна замечательная функциональность — многократное выполнение запроса. Нужна для объективной оценки времени выполнения запроса. В одной из консолей можно было управлять количеством раз выполнения запроса. Стандартно 5, но можно до 99. Ее бы еще добавить…?

    Reply
  6. serjpsv

    (5) aspirator23, добавить такую функцию — не проблема, но вот по поводу объективности оценки при многократном исполнении запроса я сомневаюсь…Насколько я понимаю, на стороне SQL сервера данные частично кэшируются (данные ВТ, план выполнения запроса и пр.).. Это приводит к тому, что второй и следующие разы запрос будет выполняться быстрее, а иногда намного быстрее, чем первый… Ну и как бы чистота эксперимента нарушается…

    Reply
  7. aspirator23

    (6) serjpsv, насчет кэша все верно. Но многократное измерение помогает при проверке в рабочее время, когда много пользователей работают в базе данных. Выполняются другие запросы и записи в базу данных. В этом случае время выполнения нашего одиночного запроса будет искажено. Приходится несколько раз запускать запрос, чтобы узнать время выполнения, которому можно верить. Многократный запрос все же усредняет и показывает более-менее правдивую информацию. Кстати в той консоли о которой я писал, при многократном запросе, отбрасывались крайние значения. Если необходимо могу прислать ее.

    Reply
  8. aspirator23

    (8) serjpsv, Даже если бы они выполнялись без задержки было бы уже хорошо.

    Reply
  9. serjpsv

    (7) aspirator23, в таком случае есть смысл выполнять запрос несколько раз с возможностью настройки задержки между итерациями выполнения…я поэкспериментирую и добавлю в следующую версию.

    Reply
  10. serjpsv

    (9) aspirator23, Добавил. Запрос можно выполнить в цикле указанное количество раз с указанным интервалом. Результаты отображаются на графике и вычисляется среднее время

    Reply
  11. aspirator23

    (10) serjpsv, спасибо, попробую.

    Reply
  12. aspirator23

    (10) serjpsv, Проверил, все работает хорошо.

    Reply
  13. aspirator23

    (10) serjpsv, как установить параметр запроса в виде списка?

    Reply
  14. serjpsv

    (13) aspirator23, стандартным образом — в пустом поле значения параметра нажимаем «Т», выбираем тип значения «Список значений». Затем набираем сам список…Если в поле уже было что-то введено, нужно сбросить тип значения нажав на «Х», а потом, сделать как описано выше.

    Reply
  15. vladir

    (0) serjpsv, Использую Вашу консоль, очень подходит кнопка «Действия над выборкой». Неудобство в том, что для пометки на удаление проведенных документов надо выполнить два действия: «Отмена проведения» и «Пометка на удаление». Решается просто. Замена 2-х строчек кода на одну

    Процедура ДействиеНадЭлементомВыборки(ЭлементСсылка, Действие)
    
    Если Действие = «пометка на удаление» Тогда
    Объект = ЭлементСсылка.ПолучитьОбъект();
    //Объект.ПометкаУдаления = Истина;
    //Объект.Записать();
    //*** Вместо Объект.ПометкаУдаления = Истина; => Объект.УстановитьПометкуУдаления()
    //*** Из СП: «Если документ проведен, применение метода приводит к отмене проведения.»
    Объект.УстановитьПометкуУдаления(Истина);
    Сообщить(«помечен на удаление » + Строка(ЭлементСсылка));

    Показать

    Reply
  16. serjpsv

    (15) vladir, да, действительно… Упустил этот момент 🙂 Спасибо за замечание, исправлю и выложу.

    Reply
  17. Ольга_tmp

    Спасибо, весьма кстати!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *