Как собрать отладчиком отдельные части запроса в один

21.03.23

Разработка - Запросы

Подробное описание функционала загрузки данных запроса из отладчика в консоли "Анализатор сложных запросов".

Предположим, вам необходимо загрузить текст запроса вместе с параметрами из отладчика в консоль запросов. В самом простом случае все данные содержатся в одном запросе, и относительно несложно реализовать функционал автозагрузки этих данных в консоль запросов для последующей его отладки.

Но достаточно часто встречаются ситуации, когда запрос раскидан по разным местам в коде конфигурации. В одном месте выполняется Запрос №1, его таблицы помещаются в менеджер временных таблиц. Где-то в другом месте какой-нибудь Запрос №2 получает эти таблицы, выполняется и помещает свои таблицы в менеджер. А потом Запрос №3 получает все эти таблицы и формирует окончательные данные.

Загружать все эти запросы в консоль по отдельности достаточно неудобно. Во-первых, надо три раза проделать операцию загрузки. Во-вторых, так мы не сможем отладить работу этих запросов как единую операцию. Вдруг мы, например, захотим поменять что-то в первом запросе и посмотреть, как поменяются данные в результирующем запросе.

Для упрощения отладки таких цепочек запросов я создал новый функционал в обработке Анализатор сложных запросов. Рассмотрим, например, как он работает:

1. Открываем обработку

 

 

2. Жмем кнопку "Создать скрипт выгрузки". Получаем форму создания скрипта:

 

 

3. Указываем количество запросов в цепочке. Их должно быть ровно столько, сколько мы собираемся установить точек останова в отладчике

В случае, если переменные разные, ставим галочку "Разные переменные запроса", и в таблице прописываем все переменные:

 

4. В нижнем окошке автоматически сформируется скрипт, который мы будем вставлять в окно отладки. Нам остается только нажать кнопку "Скопировать в буфер и закрыть".

При этом скрипт автоматически скопируется в буфер. И создадутся необходимые временные файлы, которые помогут нам осуществить выгрузку данных запросов.

Обращаю ваше внимание, что если нажать кнопку "Закрыть" ничего не произойдет. Для загрузки нужна именно желтая кнопка.

5. После формирования скрипта и временных файлов переходим к коду и расставляем необходимые точки останова.

В рассматриваемом примере их две:

 

 

6. Запускаем необходимую процедуру. В данном примере это проведение документа.

В табло отладки вставляем код, который скопирован в буфер:

 

7. Убеждаемся, что результат его исполнения = Истина на всех точках останова.

Возвращаемся в предприятие, нажимаем на форме кнопку "Загрузить данные запроса":

 

 

8. Все. Данные запросов загружены в консоль! Теперь можно отлаживать его как один запрос.

Тексты запросов собраны в один сводный текст.

Для наглядности места, где кончается один запрос и начинается другой, обозначены разделителями:

 

 

Чтобы параметры запросов не перепутались (возможны параметры с одинаковыми именами в разных запросах), к ним добавлены префиксы с номерами запросов.

В текстах запросов выполнена соответствующая замена имен параметров:

 

 

В случае если цепочка запросов начата не с самого первого запроса, подтягиваются временные таблицы запроса первого в загруженной цепочке:

 

 

И обращаю ваше внимание: чтобы все сработало, у пользователя необходимо снять галочку "Защита ото опасных действий":

 

 

Кого заинтересовали эти возможности, переходите по ссылке и качайте обработку: Анализатор сложных запросов

консоль запрос отладчик

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    177205    985    403    

940

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

4 стартмани

06.02.2025    1709    12    XilDen    26    

35

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    12351    sergey279    18    

65

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    7376    XilDen    36    

90

Запросы Программист Запросы Бесплатно (free)

Отлаживая взаимодействие с базой данных, мы регулярно сталкиваемся с зависающими или подозрительно долго выполняющимися обращениями, негативно влияющими на производительность. О том, как в PostgreSQL выявить подозрительные запросы, основываясь на доступной о них информации, расскажем в статье.

16.08.2024    10008    user1840182    5    

29

Математика и алгоритмы Запросы Программист Платформа 1С v8.3 Запросы Бесплатно (free)

Рассмотрим быстрый алгоритм поиска дублей с использованием hash функции по набору полей шапки и табличных частей.

08.07.2024    2992    ivanov660    9    

22

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    11820    implecs    6    

48
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gucci76 366 28.03.23 11:49 Сейчас в теме
Хорошо бы видео как это работает на примере ЗУП )))))
2. manuel 462 31.03.23 15:02 Сейчас в теме
(1)Я выкладывал видео здесь: Анализатор сложных вопросов. Там правда разобран случай с одной точкой останова. Но здесь все аналогично.
Оставьте свое сообщение