gifts2017

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

Опубликовал Сергей Пискунов (serjpsv) в раздел Программирование - Инструментарий

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

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
КонЗап
.epf 57,22Kb
13.08.14
89
.epf 2.1 57,22Kb 89 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Лыткин (TrinitronOTV) 16.07.14 10:39
конструктор запроса в данной обработке может быть вызван?
2. Сергей Пискунов (serjpsv) 16.07.14 10:55
(1) TrinitronOTV, Да, как обычно, правой кнопкой на тексте запроса - конструктор запроса
TrinitronOTV; +1 Ответить
3. Фаниль Исламов (fancy) 17.07.14 07:19
А временные таблицы показывает?
Я пользуюсь консолью "Запросник 1С" от Владимира Тезина - очень помогает в работе
4. Сергей Пискунов (serjpsv) 17.07.14 10:18
(3) fancy, Да, на втором скриншоте поле выбора временных таблиц обведено под номером 3
5. aspirator 23 (aspirator23) 27.07.14 15:50
(4) Действительно, почти все есть, что нужно, в одном месте. Есть еще одна замечательная функциональность - многократное выполнение запроса. Нужна для объективной оценки времени выполнения запроса. В одной из консолей можно было управлять количеством раз выполнения запроса. Стандартно 5, но можно до 99. Ее бы еще добавить...?
6. Сергей Пискунов (serjpsv) 27.07.14 23:05
(5) aspirator23, добавить такую функцию - не проблема, но вот по поводу объективности оценки при многократном исполнении запроса я сомневаюсь...Насколько я понимаю, на стороне SQL сервера данные частично кэшируются (данные ВТ, план выполнения запроса и пр.).. Это приводит к тому, что второй и следующие разы запрос будет выполняться быстрее, а иногда намного быстрее, чем первый... Ну и как бы чистота эксперимента нарушается...
7. aspirator 23 (aspirator23) 28.07.14 06:59
(6) serjpsv, насчет кэша все верно. Но многократное измерение помогает при проверке в рабочее время, когда много пользователей работают в базе данных. Выполняются другие запросы и записи в базу данных. В этом случае время выполнения нашего одиночного запроса будет искажено. Приходится несколько раз запускать запрос, чтобы узнать время выполнения, которому можно верить. Многократный запрос все же усредняет и показывает более-менее правдивую информацию. Кстати в той консоли о которой я писал, при многократном запросе, отбрасывались крайние значения. Если необходимо могу прислать ее.
8. Сергей Пискунов (serjpsv) 28.07.14 12:29
(7) aspirator23, в таком случае есть смысл выполнять запрос несколько раз с возможностью настройки задержки между итерациями выполнения...я поэкспериментирую и добавлю в следующую версию.
9. aspirator 23 (aspirator23) 28.07.14 11:50
(8) serjpsv, Даже если бы они выполнялись без задержки было бы уже хорошо.
10. Сергей Пискунов (serjpsv) 13.08.14 16:20
(9) aspirator23, Добавил. Запрос можно выполнить в цикле указанное количество раз с указанным интервалом. Результаты отображаются на графике и вычисляется среднее время
aspirator23; +1 Ответить 3
11. aspirator 23 (aspirator23) 13.08.14 16:43
(10) serjpsv, спасибо, попробую.
12. aspirator 23 (aspirator23) 13.08.14 16:54
(10) serjpsv, Проверил, все работает хорошо.
13. aspirator 23 (aspirator23) 28.08.14 07:08
(10) serjpsv, как установить параметр запроса в виде списка?
14. Сергей Пискунов (serjpsv) 28.08.14 11:51
(13) aspirator23, стандартным образом - в пустом поле значения параметра нажимаем "Т", выбираем тип значения "Список значений". Затем набираем сам список...Если в поле уже было что-то введено, нужно сбросить тип значения нажав на "Х", а потом, сделать как описано выше.
15. Владимир (vladir) 16.10.14 16:39
(0) serjpsv, Использую Вашу консоль, очень подходит кнопка «Действия над выборкой». Неудобство в том, что для пометки на удаление проведенных документов надо выполнить два действия: «Отмена проведения» и «Пометка на удаление». Решается просто. Замена 2-х строчек кода на одну
Процедура ДействиеНадЭлементомВыборки(ЭлементСсылка, Действие)
	
	Если Действие = "пометка на удаление" Тогда
		Объект = ЭлементСсылка.ПолучитьОбъект();
		//Объект.ПометкаУдаления = Истина;
		//Объект.Записать();
		//*** Вместо Объект.ПометкаУдаления = Истина; => Объект.УстановитьПометкуУдаления()
		//*** Из СП: "Если документ проведен, применение метода приводит к отмене проведения."
		Объект.УстановитьПометкуУдаления(Истина);
		Сообщить("помечен на удаление " + Строка(ЭлементСсылка));
...Показать Скрыть
16. Сергей Пискунов (serjpsv) 17.10.14 17:21
(15) vladir, да, действительно... Упустил этот момент :) Спасибо за замечание, исправлю и выложу.
17. Ольга (Ольга_tmp) 20.03.15 08:53
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа