Спасибо за помощь пользователю StepByStep (МА!)
Обновление от 11.04.2014 (Подробнее...)
Соединение двух проектов - "Выполнение и отладка запроса" и "Визуальная структура запроса" в новый проект - отладчик запросов.
Функционал простого парсера текста запросов (реализованного на языке 1С без внешних компонент), позволил создать новые функции для построения текста запроса и отладки его результатов:
1. Средства анализа и преобразования исходного текста запроса:
Встроенная "Визуальная структура запроса" (Подробнее...) | |
Список запросов пакетного запроса, с возможностью перехода к началу текста нужного запроса из списка. (Подробнее...) | |
Функция "Вложить в запрос" (Подробнее...) | |
Функция "Извлечь подзапрос из запроса" (Подробнее...) | |
(new) Функция "Разложить вложенный запрос в пакетный" (Подробнее...) | |
(new) Функция "Собрать пакетный запрос во вложенный" (Подробнее...) | |
Функция "Код запроса" (Подробнее...) | |
Автоматический анализ наличия ошибок с выделением слова, на котором произошла ошибка (Подробнее...) |
2. Средства отладки
Информационная панель (Подробнее...) | |
Просмотр временных таблиц (Подробнее...) | |
Опция "Не удалять временные таблицы" (Подробнее...) | |
Режим "Пошаговое выполнение пакетного запроса" (Подробнее...) | |
Просмотр данных источников для составного запроса (Подробнее...) |
3. Прочие функции
никакого ноу-хау... просто для удобства добавлены несколько функций, встречающихся в различных вариациях консолей запросов
... | "Открыть из отладчика" (Подробнее...) |
"Обработка результата" (Подробнее...) |
теперь подробнее:
Встроенная "Визуальная структура запроса"
внешний вид переработан, функционал доработан - пользователем StepByStep (МА!). Кнопка, для вызова:
пример:
Список запросов пакетного запроса
с возможностью перехода к началу текста нужного запроса из списка. Кнопка, для вызова:
пример:
Функция "Вложить в запрос"
Кнопка, для вызова: :
делает из текущего запроса - вложенный посредством помещения его в конструкцию
ВЫБРАТЬ
*
ИЗ () КАК ИсточникДанных
Функция "Извлечь из запроса"
Кнопка, для вызова:
извлекает вложенный запрос наружу (делает обратную операцию команде "вложить запрос") при этом все внешние вычисления будут утеряны.
Функция "Разложить вложенный запрос в пакетный" (ноухау)
Кнопка, для вызова:
Это довольно интересная функция - нигде такого не встречал.
Например запрос:
Преобразуется в пакетный запрос:
Функция "Собрать пакетный запрос во вложенный" (ноухау)
Кнопка, для вызова:
Это довольно интересная функция - нигде такого не встречал.
Например запрос:
Преобразуется в запрос:
Функция "Код запроса"
Кнопка, для вызова:
Вызывает диалог "Код запроса" с готовыми шаблонами кода запроса для создания отчетов:
Обратите внимание на четвертую вкладку "Универсальный отчет (модуль)". На вкладке содержится заготовка модуля универсального отчета (//infostart.ru/public/84642/)
При переходе на эту вкладку - справа вверху появляется кнопка , при нажатии на которую появится диалог, в котором можно настроить основные параметры для универсального отчета
Автоматический анализ наличия ошибок с выделением слова, на котором произошла ошибка
Информационная панель
Находится на странице результата запроса сверху:
Она разделена на три части - в первой показывается затраченное время в милимекундах, во второй - количество записей, а в третьей - тип результата.
Тип результата зависит от последнего запроса - это может быть выборка, создание временной таблицы или уничтожение её.
Просмотр временных таблиц
Кнопка, для вызова:
Опция "Не удалять временные таблицы"
Кнопка, для вызова:
Эта кнопка - переключатель. Если она нажата, то перед выполнением из запроса будут исключены инструкции удаления виртуальных таблиц, и можно будет просмотреть все таблицы пакетного запроса по его завершении.
Режим "Пошаговое выполнение пакетного запроса"
Кнопка, для вызова:
Просмотр данных источников для составного запроса
Кнопка, для вызова:
Функция "Открыть из отладчика"
Кнопка, для вызова:
Функция "Обработка результата"
Кнопка, для вызова: (на странице результата)
Обрабатывать возможно только таблицу значений. Если запрос выгружен в дерево значений - то обработка будет запрещена (кнопка будет неактивна)
А что еще?
На самом деле это еще и не весь функционал... хотя освещены самые важные моменты... Дополнительно есть еще - сортировка в диалоге просмотра виртуальных таблиц, в списке параметров удобно указывать тип и выбирать значения. Можно выбрать тип список значений или таблицу значений. Для последней реализован диалог ввода плюс диалог загрузки из файла или из табличного документа (как в статье "Как программисту быстро загрузить данные из Excel") и еще какие-то мелкие примочки...
А что дальше?
Проект будет развиваться по мере наличия у меня свободного времени. Планирую добавить поддержку текстов запроса построителя отчета и СКД, планируется улучшать механизмы отладки - анализа результата запроса. Далее можно заняться улучшением парсера текста запросов - и сделать аналог конструктора запросов, после чего перевести все это на управляемые формы... В общем, планов и идей - масса!..
Чем пользовался?
Для снятия скриншотов (для данной статьи) - использовал бесплатную и удобную утилиту "PicPick".
Использованы наработки по следующим разработкам:
1. Коллекция полезных кнопок и процедур для отчетов и обработок v2.03
2. Универсальный отчет (4.2.0.1)
3. Подсистема "Инструменты разработчика" v2.82
и наверняка что-то еще... кого упустил - пишите... добавлю!..
Хотите помочь?
Высказывайте ваши предложения и пожелания в комментариях.
Если кто-то хочет принять участие в разработке - буду рад!
Обновление от 11.04.2014
1. Совместимо с подсистемой "Инструменты разработчика"
2. Встраивание класса "Контекстная подсказка"
При наличии в составе конфигурации подсистемы ИР - интегрируется класс "Поле текстового документа с контекстной подсказкой"
При отсутствии ИР - интегрируется устаревший класс (который был в виде отдельной обработки ранее размещен на просторах Инфостарта) - этот класс устаревший, имеет свои недостатки (например, нет контекстной подсказке по процедурам общих модулей), но для его использования не нужно регистрировать дополнительные компоненты.
3. Режим выполнения без проверки на ошибки
4. Режим выполнения запроса по выделенной части запроса
5. Пошаговое выполнение пакета запросов -> Возможность повторить шаг (вернуться на шаг назад)
6. Пошаговое выполнение пакета запросов -> Возможность перезаполнять параметры запроса на каждом шаге
7. Вкладка "Параметры" значительно переработана:
+ Добавлена возможность вводить параметры типа "Граница" и "МоментВремени";
+ Добавлена кнопка "Обновить";
+ Добавлена колонка "Где встречается" (по одному из пожеланий) + при двойном щелчке по ней - переход к данному параметру в тексте запроса;
+ Колонка "СЗ" (флажок) - при установке данного флажка - параметр будет представлять из себя список значений, а тип в колонке "Тип значения" будет использован в редакторе списка значений - как тип по-умолчанию;
+ Колонка "Автозаполнение" - действует только на начальнйю или конечную даты (заполнять ли их значениями из НачПериода и КонПериода);
+ Задание своего кода установки параметров (кнопка Код установки) - в некоторых случаях будет удобно;
8. Для кода обработки результата добавлена возможность задавать параметры.
9. Добавлен "Конструктор правила для экспресс-проверки ведения учета" (вызывается кнопкой на странице "Результат").