Эта консоль предназначена для того чтобы облегчить анализ сложных запросов. Когда запрос состоит из большого количества временных таблиц, достаточно сложно передвигаться по его тексту и отслеживать все взаимосвязи таблиц. Данная консоль делает запрос наглядным, она отображает его в виде графа с временными таблицами в виде узлов и связями между таблицами в виде ребер графа. Если временная таблица имеет вложенные запросы, то она показывается на графе со всеми вложениями. Таким образом весь запрос предстает как на ладони. Узлы графа кликабельны, если нажать мышкой на узел графа, справа отобразится соответствующий текст запроса. Выделенный узел подсвечивается зеленым цветом, также зеленым цветом выделяются все таблицы от которых данная таблица зависит. Можно выделить не только целый узел но и отдельно выделить каждую из его составных частей. Нажав кнопку "Выполнить запрос" можно посмотреть результат работы данного запроса, в том числе можно отдельно выполнить и каждый из вложенных запросов. При наведении указателя на ребро графа оно выделяется цветом, также выделяются узлы, которые оно соединяет.
Данная консоль запросов работает на платформе 8.3.9. Также необходим IE11. На предыдущих версиях не проверял.
Краткий перечень возможностей:
- Поддержка обычных и управляемых форм.
- Отображение всех подзапросов, формирующих временные таблицы, в виде графа с отображением всех логических связей между ними.
- Отображение всех вложенностей запросов и частей конструкции ОБЪЕДИНИТЬ.
- Просмотр текстов всех подзапросов и вложенных запросов путем нажатия на соответствующий узел на графе.
- Возможность просмотра результата каждого подзапроса и вложенного запроса, а также отдельной части конструкции ОБЪЕДИНИТЬ.
- Отображение времени выполнения запроса и количества строк.
- Просмотр запроса в виде html текста, в котором можно сворачивать и разворачивать вложенности.
- Возможность редактировать отдельный подзапрос.
- Автоматическое добавление в текст запроса команды "УНИЧТОЖИТЬ" в тех местах где таблица уже не нужна.
- Сохранение текста запроса с параметрами в файл, а также загрузка данных запроса из файла.
- Загрузка данных запроса из отладчика - текст запроса, параметры, временные таблицы. Выполнение такого запроса с данными временных таблиц.
- Загрузка из отладчика данных нескольких запросов, связанных менеджером временных таблиц, собирание загруженных данных в один комплексный запрос (только УФ).
- Просмотр значений типа "Таблица значений" в строках таблицы результата запроса.
Версия 0.2
Добавлена загрузка параметров запроса из файла в консоль. Ели вы выгрузили параметры запроса в отладчике методом "ЗначениеВФайл", вы можете загрузить их в консоль запросов по кнопке: "Заполнить параметры из файла".
Версия 0.3
Добавлена поддержка обычных форм.
Убрана обфускация с кода java script.
Версия 0.4
Для параметров типа "Список значения" типовая форма редактирования списка заменена на нетиповую. Типовая форма не давала возможности добавлять в список значений элементы с типом "Перечисление". Теперь этот недостаток исправлен.
Версия 0.5
1. Добавлена поддержка временных таблиц из менеджера.
2. Загрузка всех данных запроса из отладчика в консоль запросов.
Теперь все данные запроса можно загружать автоматически из отладчика: и текст запроса, и параметры, и временные таблицы из менеджера, если они есть.
Для этого сначала необходимо нажать кнопку "Сформировать скрипт выгрузки"
После этого в открывшейся форме скопировать текст скрипта (если переменная запроса называется не "Запрос" то ввести ее имя)
Открыть отладчик, установить точку остановки в месте, где все данные запроса уже сформированы, и запустить программу.
Когда отладчик остановится в нужном месте, поместить в табло отладчика скрипт выгрузки, убедиться что функция приняла значение "Истина", после чего продолжить выполнение программы.
Вернуться в консоль запросов и нажать кнопку "Загрузить данные запроса", после чего все данные загрузятся автоматически.
Если запрос имел таблицы в менеджере временных таблиц, их данные отобразятся на появившейся закладке "Менеджер временных таблиц"
Для работы с данным механизмом необходимо у себя в настройках пользователя в конфигураторе снять галочку "Защита от опасных действий"!!!
Версия 0.6
1. Схема запроса с учетом объединений запроса (расширенная схема)
Схему запроса в консоли теперь можно просматривать в двух вариантах - кратком и подробном, для этого сделано две отдельные закладки.
Подробная схема отличается от краткой тем, что в ней показаны объединения запросов.
На представленных картинках показаны отличия между простым и подробным отображением схемы.
Если запрос содержит объединения, то они будут показаны на схеме как блоки Часть_1, Часть_2 и т.д.
Текст запроса, содержащего объединения, можно просматривать как целиком так и по частям, тыкая на схеме в узел, соответствующий нужной части.
Связи между таблицами показываются также с учетом объединений, то есть стрелка, отображающая связь, попадает не просто в запрос, а именно в ту часть запроса, в которой используется соответствующая таблица.
2. Отображение текста запроса в формате HTML с возможностью сворачивать, разворачивать тексты подзапросов.
В случае больших громоздких запросов, содержащих вложенные запросы, появилась возможность отображать текст запроса в компактном виде, а при желании разворачивать подробно его отдельные части.
Для этого в консоли добавлена вторая закладка - "HTML", на которой текст можно просмотреть в структурированном виде. Если в запросе содержится подзапрос, то он отображается в виде названия этого подзапроса, а при нажатии на название его текст полностью разворачивается. Можно также свернуть его обратно.
Если мы имеем "матрешку" из подзапросов, то можно последовательно развернуть ее до самого конца.
На представленных картинках показан текст в свернутом и развернутом виде.
В случае подробной схемы можно просматривать части объединения запроса в свернутом виде.
Версия 0.7
1. Добавлена возможность менять текст основного запроса через окно текста подзапроса.
В окне текста подзапроса появилась кнопка "Применить текст к исходному запросу". При нажатии проверяется корректность всего запроса и в случае успешной проверки текст исходного запроса изменяется и схема полностью перерисовывается. Если вы отредактировали текст подзапроса и потом перешли к другому узлу на графе, то отредактированный текст сохраняется; когда вы вернетесь к прежнему узлу, то можно будет перейти к отредактированному тексту по кнопке "Заменить текст на отредактированный". Можно будет также вернуться обратно к исходному тексту подзапроса по кнопке "Заменить текст на исходный".
2. Исправлены ошибки при загрузке данных запроса из отладчика.
3. Изменено цветовое оформление графа.
Версия 0.8
1. Добавлена возможность сохранять данные запроса в файл формата "q1c" и загружать данные из него обратно в консоль запросов.
Текст запроса и параметры теперь можно сохранять в xml-файл стандарта 1C - "q1c". Также можно загружать их обратно. Данная консоль запросов работает с одним текстом запроса, поэтому если файл запроса содержит несколько разных текстов, то в консоль загрузится только один.
2. Добавлена возможность автоматически вставлять в текст запроса уничтожение временных таблиц.
По кнопке "Добавить уничтожение временных таблиц" можно вставить в текст запроса команды "УНИЧТОЖИТЬ". Консоль сама определяет место в запросе, когда временная таблица дальше не используется и ее можно уничтожить
Версия 0.9 от 03.07.2019
Поддержка 8.3.14 (WebKit)
Адаптировано под платформу 8.3.14 и выше (совместимо с WebKit). Совместимость с предыдущими платформами осталась.
Версия 0.9.1 от 18.10.2019
Исправление ошибки
Неправильно считались координаты узла графа. Из-за этого иногда некорректно определялся узел на который наводилась мышь. Ошибка появлялась только под 14-й платформой и только в ситуации когда граф был большой и не влезал в поле HTML документа, точнее когда приходилось прокручивать граф вниз или вправо. Дело в том что IE в этой ситуации определял координаты от левой и верхней границы документа, а Web Kit, как оказалось, определял их от видимой части документа, соответственно когда документ уезжал влево или вверх координаты определялись неверно.
Теперь для Web Kit все определяется корректно. Проблема устранена.
Версия 1.0 от 19.03.2023 (Новый функционал только для УФ!)
Добавлена возможность загружать данные запроса отладчиком из нескольких мест в коде (собирание нескольких частей запроса в один)
В случае если мы хотим загрузить запрос, который использует менеджер временных таблиц, который формируется запросом в другом месте кода, а тот запрос возможно использует менеджер из другого запроса, мы можем теперь поставить несколько точек останова и загрузить все эти запросы в один. Процедура загрузки аналогична случаю с одним запросом - см. описание версии 0.5. Отличие в том что в форме создания скрипта есть возможность указать количество запросов, и если переменные запросов отличаются, есть возможность задать несколько имен переменных. Создаем скрипт, на каждой точке останова исполняем его, убеждаемся, что результат исполнения на каждой точке - Истина. А потом по кнопке "Загрузить данные запроса" загружаем данные в запрос. В результате получаем один большой запрос, параметры из всех запросов, и в случае если мы начали цепочку не с самого первого запроса, получаем таблицы из менеджера запроса первого в нашей цепочке.
Версия 1.1 от 11.04.2023
Просмотр значений типа "Таблица значений" в строках таблицы результата запроса.
Версия 1.1.1 от 29.11.2023
Таблица параметров запроса вынесена на отдельную страницу.
Исправлен недостаток- теперь значение параметра типа "Дата" можно указывать с временем.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.15.96