[8.3] Удобная отладка запроса (управляемые формы)

Публикация № 934312

Программирование - Практика программирования

Отладка Запрос Консоль запросов отчетов Инструмент Методика Метод Разработчику

41
Получение данных запроса из отладки. Загрузка текста запроса, параметров, данных временных таблиц

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

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

Ниже описан метод которой решает ту же проблему для управляемых форм:

В управляемых формах нельзя открыть форму в контексте сервера, но можно получить данные и сохранить.

Этот способ удобно реализован в расширении Управляемая консоль отчетов она позволяет сохранять данные в файле или системных настройках.

Сохранение в настройках более удобно т.к. сохранение происходит в контексте сервера и путь к файлу нужно будет прописывать "с сервера" для настроек такой проблемы нет.

Используется экспортная функция: УКО_Запрос.СохранитьВНастройки(Запрос, ИмяНастройки = Неопределено) 

Вызов отладки правильнее получать из Консоль - Инструменты - Конструктор строки отладки

Если имя настройки не задано используется "Запрос (из отладки)"

Возвращает Неопределено -  все хорошо, если произойдет ошибка вернет строку с текстом ошибки

Есть аналогичная функция для сохранения в файл: УКО_Запрос.СохранитьВФайлНаСервере (Запрос, Путь, ИмяБезРасширения = Неопределено) 

1. В конфигураторе ставим точку останова перед выполнением интересующего нас запроса

В табло вставляем УКО_Запрос.СохранитьВНастройки(Запрос) жмем F5

2. Открываем консоль в последних открытых данных должна появится строка Запрос (из отладки).

3. Открываем данные и работаем

Получен текст запроса

Получены параметры запроса

Получены данные временных таблицы (МВТ)

41

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. dandykry 3 01.11.18 13:16 Сейчас в теме
Интересно было бы, если бы это отработало с менеджером временных таблиц.
2. Evg-Lylyk 2415 01.11.18 13:31 Сейчас в теме
(2) Работает. Таблицы МВТ считываются и добавляются МВТ консоли
3. seperblunt2 03.11.18 19:08 Сейчас в теме
4. hotey 37 04.11.18 09:12 Сейчас в теме
А чем отличается от упомянутой консоли или от «Запросник 2.0»?
5. Evg-Lylyk 2415 04.11.18 17:35 Сейчас в теме
6. dock 35 05.11.18 17:36 Сейчас в теме
Чувствую подвох, но никак не пойму где...

1) "управляемая консоль отчетов 2.5.2" входит в состав демонстрационной конфигурации "управляемое приложение" ? если нет, то вот в упор не вижу кнопки "скачать"...

2)
Подобное решение используется в Консоль запросов для УФ универсальная

была мысль, что это продолжение статьи про консоль запросов по ссылке... но ведь в этой статье используется подобное решение...
опять таки, если это подобное решение, где ссылочка на текущее решение?
7. Evg-Lylyk 2415 05.11.18 19:51 Сейчас в теме
(6) Здесь описана методика отладки запроса на УФ.
Управляемая консоль отчетов это продукт поставляется в основном в виде расширения, но есть и внешняя обработка. Реализация описана из УКО. Уберу "Подобное рещени..." чтобы не путать.
9. Evg-Lylyk 2415 24.11.18 11:42 Сейчас в теме
10. serg_r 10.02.19 21:50 Сейчас в теме
11. Vida 10 28.02.19 12:51 Сейчас в теме
Подскажите, как я поняла, значения параметров не передаются?
Но в них вся соль, к тому же бывает что они - таблицы!

Может подскажите какой-нибудь вариант?
Evg-Lylyk; +1 Ответить
12. Evg-Lylyk 2415 28.02.19 14:01 Сейчас в теме
(11) Все хорошо. Из объекта запрос считываются параметры и временные таблицы
13. Evg-Lylyk 2415 28.02.19 14:02 Сейчас в теме
(11) Посмотрите 4,5 скриншоты
14. Vida 10 28.02.19 14:51 Сейчас в теме
(13) На этих скриншотах вижу что значения параметров не заполнены.
Не так?
Evg-Lylyk; +1 Ответить
15. Evg-Lylyk 2415 28.02.19 14:59 Сейчас в теме
(14) Да, неудачный скриншот. Спасибо, учту
16. Vida 10 01.03.19 09:17 Сейчас в теме
Добрый день!
Помогите разобраться с консолью:
когда вставляю в табло
УКО_Сервер.СохранитьЗапросВНастройки(Запрос)

пишет значение -
Переменная не определена (УКО_Сервер)

и в меню файл Запрос (из отладки) не появляется
хотя вроде как расширение встало нормально и раздел новый появился "Упр. консоль отчетов"

Может я вызываю его из слишком специфичного места? Вызываю из обработки Модуль_ДиадокУФ, которая вставлена в конфигурацию, которая в свою очередь запускает модуль, который лежит в в виде внешней обработки на диске в указанной папке.

//Там сложные запросы в которых черт ногу сломит никак не могу разобраться.
Evg-Lylyk; +1 Ответить
17. Evg-Lylyk 2415 01.03.19 09:37 Сейчас в теме
(16) Из предоставленной информации: Возможно вы запускаете не на сервере.
Необходимо поставить точку останова на Запрос.Выполнить() ну или когда уже все заполнено далее в табло вычисляемого выражении Shift+F9 вставить текст.
Текст можно получить через консоль - Инструменты - Конструктор строки отладки...
УКО_Сервер - серверный модуль... нужно вызывать в контексте сервера
18. Vida 10 01.03.19 10:06 Сейчас в теме
(17)
да, по точке останова останавливаюсь на Запрос.Выполнить()
значит нахожусь на сервере.

через инструменты тоже не получается, видимо по той же причине: раз в табло написало мне "Переменная не определена (УКО_Сервер) "
значит вызов не прошел
Прикрепленные файлы:
Evg-Lylyk; +1 Ответить
19. Evg-Lylyk 2415 01.03.19 10:10 Сейчас в теме
А понял вместо УКО_Сервер используйте УКО_Запрос
Правильнее текст можно получить через консоль - Инструменты - Конструктор строки отладки
Статью поправлю
20. Vida 10 01.03.19 10:15 Сейчас в теме
(19)Спасибо, что помогаете!

Оно продолжает ругаться, но теперь по новому:
Хотя бы "УКО_Запрос" видит
Прикрепленные файлы:
Evg-Lylyk; +1 Ответить
21. Evg-Lylyk 2415 01.03.19 10:18 Сейчас в теме
(20) Рад помочь, там просто многое переработал, а статью не поправил. Мои извинения за неудобства
Используйте УКО_Запрос.СохранитьВНастройки
Проверьте конструктором отладки (инструмент в консоли)
22. Vida 10 01.03.19 10:23 Сейчас в теме
(19)
Правильнее текст можно получить через консоль - Инструменты - Конструктор строки отладки

Точно! Там написано совсем иначе:
УКО_Запрос.СохранитьВНастройки(Запрос)

Теперь еще по 3-му ругается:
Прикрепленные файлы:
Evg-Lylyk; +1 Ответить
23. Evg-Lylyk 2415 01.03.19 10:27 Сейчас в теме
Видимо ошибка
Попробуйте
В указанной строке 470 (УКО_Запрос)
" Если ЗначениеЗаполнено(Объект.МенеджерВременныхТаблиц) Тогда"
заменить на
" Если Объект.МенеджерВременныхТаблиц <> Неопределено Тогда"
24. Vida 10 01.03.19 10:41 Сейчас в теме
(23)Поменяла.
О_О
OMG Все получилось!
И параметры видно заполненные и результат запроса в консоле!
Сейчас умру от счастья!
25. Vida 10 01.03.19 12:15 Сейчас в теме
Извиняюсь что отвлекаю, может подскажите куда копать?
При попытке загрузки в консоль второго запроса, через Данные - Запрос (из отладки) получаю ошибку:
Прикрепленные файлы:
26. Evg-Lylyk 2415 01.03.19 12:20 Сейчас в теме
(25) Судя по сообщению... ошибка при передаче таблицы значений. Возможно ошибка, на выходных проверю запрос с ВТ.
Нужно подробнее давайте только лично пообщаемся чтобы не забивать статью комментариями.
Нажмите подробно и пришлите может удастся быстро решить
27. Irwin 302 15.03.19 16:12 Сейчас в теме
А как дела с производительностью? Например, 10 временных таблиц, в каждой по 10 колонок и 10 тыс. строк. Сколько по времени будут сохраняться данные, и сколько будет запрос открываться в консоли?
28. Evg-Lylyk 2415 15.03.19 16:25 Сейчас в теме
(27) Есть лимит (моя проверка) ячеек 500000 на одну ТЗ.
При больших объемах конечно будут проблемы. Не решал и не анализировал данный вопрос.
Оставьте свое сообщение