Предположим, вам необходимо загрузить текст запроса вместе с параметрами из отладчика в консоль запросов. В самом простом случае все данные содержатся в одном запросе, и относительно несложно реализовать функционал автозагрузки этих данных в консоль запросов для последующей его отладки.
Но достаточно часто встречаются ситуации, когда запрос раскидан по разным местам в коде конфигурации. В одном месте выполняется Запрос №1, его таблицы помещаются в менеджер временных таблиц. Где-то в другом месте какой-нибудь Запрос №2 получает эти таблицы, выполняется и помещает свои таблицы в менеджер. А потом Запрос №3 получает все эти таблицы и формирует окончательные данные.
Загружать все эти запросы в консоль по отдельности достаточно неудобно. Во-первых, надо три раза проделать операцию загрузки. Во-вторых, так мы не сможем отладить работу этих запросов как единую операцию. Вдруг мы, например, захотим поменять что-то в первом запросе и посмотреть, как поменяются данные в результирующем запросе.
Для упрощения отладки таких цепочек запросов я создал новый функционал в обработке Анализатор сложных запросов. Рассмотрим, например, как он работает:
1. Открываем обработку
2. Жмем кнопку "Создать скрипт выгрузки". Получаем форму создания скрипта:
3. Указываем количество запросов в цепочке. Их должно быть ровно столько, сколько мы собираемся установить точек останова в отладчике
В случае, если переменные разные, ставим галочку "Разные переменные запроса", и в таблице прописываем все переменные:
4. В нижнем окошке автоматически сформируется скрипт, который мы будем вставлять в окно отладки. Нам остается только нажать кнопку "Скопировать в буфер и закрыть".
При этом скрипт автоматически скопируется в буфер. И создадутся необходимые временные файлы, которые помогут нам осуществить выгрузку данных запросов.
Обращаю ваше внимание, что если нажать кнопку "Закрыть" ничего не произойдет. Для загрузки нужна именно желтая кнопка.
5. После формирования скрипта и временных файлов переходим к коду и расставляем необходимые точки останова.
В рассматриваемом примере их две:
6. Запускаем необходимую процедуру. В данном примере это проведение документа.
В табло отладки вставляем код, который скопирован в буфер:
7. Убеждаемся, что результат его исполнения = Истина на всех точках останова.
Возвращаемся в предприятие, нажимаем на форме кнопку "Загрузить данные запроса":
8. Все. Данные запросов загружены в консоль! Теперь можно отлаживать его как один запрос.
Тексты запросов собраны в один сводный текст.
Для наглядности места, где кончается один запрос и начинается другой, обозначены разделителями:
Чтобы параметры запросов не перепутались (возможны параметры с одинаковыми именами в разных запросах), к ним добавлены префиксы с номерами запросов.
В текстах запросов выполнена соответствующая замена имен параметров:
В случае если цепочка запросов начата не с самого первого запроса, подтягиваются временные таблицы запроса первого в загруженной цепочке:
И обращаю ваше внимание: чтобы все сработало, у пользователя необходимо снять галочку "Защита ото опасных действий":
Кого заинтересовали эти возможности, переходите по ссылке и качайте обработку: Анализатор сложных запросов