Данные запроса из отладки с содержимым временных таблиц (управляемые формы)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

57

См. также

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

Комментарии
Избранное Подписка Сортировка: Древо
1. dandykry 3 01.11.18 13:16 Сейчас в теме
Интересно было бы, если бы это отработало с менеджером временных таблиц.
2. Evg-Lylyk 2552 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 2552 04.11.18 17:35 Сейчас в теме
6. dock 35 05.11.18 17:36 Сейчас в теме
Чувствую подвох, но никак не пойму где...

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

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

была мысль, что это продолжение статьи про консоль запросов по ссылке... но ведь в этой статье используется подобное решение...
опять таки, если это подобное решение, где ссылочка на текущее решение?
7. Evg-Lylyk 2552 05.11.18 19:51 Сейчас в теме
(6) Здесь описана методика отладки запроса на УФ.
Управляемая консоль отчетов это продукт поставляется в основном в виде расширения, но есть и внешняя обработка. Реализация описана из УКО. Уберу "Подобное рещени..." чтобы не путать.
9. Evg-Lylyk 2552 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 2552 28.02.19 14:01 Сейчас в теме
(11) Все хорошо. Из объекта запрос считываются параметры и временные таблицы
13. Evg-Lylyk 2552 28.02.19 14:02 Сейчас в теме
(11) Посмотрите 4,5 скриншоты
14. Vida 10 28.02.19 14:51 Сейчас в теме
(13) На этих скриншотах вижу что значения параметров не заполнены.
Не так?
Evg-Lylyk; +1 Ответить
15. Evg-Lylyk 2552 28.02.19 14:59 Сейчас в теме
(14) Да, неудачный скриншот. Спасибо, учту
33. ardarik 9 28.05.19 15:43 Сейчас в теме
(11) А мы сделали так, что в отладке в конфигураторе параметры запроса преобразовываем в строку, а в консоли запросов 2.0 читаем из строки и вуаля, все параметры в том же виде загружены ))
16. Vida 10 01.03.19 09:17 Сейчас в теме
Добрый день!
Помогите разобраться с консолью:
когда вставляю в табло
УКО_Сервер.СохранитьЗапросВНастройки(Запрос)

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

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

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

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

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

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

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

Теперь еще по 3-му ругается:
Прикрепленные файлы:
Evg-Lylyk; +1 Ответить
23. Evg-Lylyk 2552 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 2552 01.03.19 12:20 Сейчас в теме
(25) Судя по сообщению... ошибка при передаче таблицы значений. Возможно ошибка, на выходных проверю запрос с ВТ.
Нужно подробнее давайте только лично пообщаемся чтобы не забивать статью комментариями.
Нажмите подробно и пришлите может удастся быстро решить
27. Irwin 312 15.03.19 16:12 Сейчас в теме
А как дела с производительностью? Например, 10 временных таблиц, в каждой по 10 колонок и 10 тыс. строк. Сколько по времени будут сохраняться данные, и сколько будет запрос открываться в консоли?
28. Evg-Lylyk 2552 15.03.19 16:25 Сейчас в теме
(27) Есть лимит (моя проверка) ячеек 500000 на одну ТЗ.
При больших объемах конечно будут проблемы. Не решал и не анализировал данный вопрос.
29. belousows 1 08.04.19 12:05 Сейчас в теме
Расширение добавил в ЗУП3, безопасный режим убрал галку. В конфигураторе видно расширение. В программе консоли нет ((, подскажите , что может быть не так
30. Evg-Lylyk 2552 08.04.19 12:07 Сейчас в теме
(29) Посмотреть инструкцию по установке. Возможно не запускали обработку УКО_УстановкаРасширения.
31. belousows 1 08.04.19 14:29 Сейчас в теме
(30) Спасибо. Появилась консоль. В зупе3 при тестировании расшифровкки РСВ1 (база 5500 сотрудников) говорит, что превышен размер ВТ
Evg-Lylyk; +1 Ответить
32. belousows 1 08.04.19 15:09 Сейчас в теме
(31) Все другое отрабатывает отлично, будем активно использовать)))
34. manuel 318 28.05.19 15:46 Сейчас в теме
Вот пример когда работает без расширений и без лишних телодвижений - https://infostart.ru/public/617990/.
Нажали кнопку "Сформировать скрипт выгрузки", вставили текст скрипта в отладчик, нажали "Загрузить данные запроса"
И все данные запроса загрузились, и текст и параметры и таблицы из менеджера.
Ну и бонусом, граф запроса отрисовался.
35. Evg-Lylyk 2552 28.05.19 15:54 Сейчас в теме
(34) В консоли есть вариант в виде внешней обработки и работает также как вы привели.
Граф отрисовывается здорово, только есть множество других неудобных моментов проект не развивается очень давно.
Приложил файл сравнения функциональности
Прикрепленные файлы:
Сравнение консолей запросов, отчетов.xlsx
36. manuel 318 28.05.19 16:09 Сейчас в теме
(35)Не, ну каждый может под себя такую табличку подогнать. Всегда можно расставить баллы так, что ты красавчик, а остальные так себе). Если б это было какое то исследование независимой организацией, можно было бы такие таблички всерьез рассматривать.
По поводу - "много неудобных моментов", ну это очень субъективно. В комментариях особо жалоб я не вижу.
А по поводу того, что проект не развивается, неправда. Последнее обновление было полгода назад. Готовится новое очень серьезное обновление. То что это не быстро, так извините и проект не из самых простых.
37. Evg-Lylyk 2552 28.05.19 16:17 Сейчас в теме
(36) оценка субъективная. Можете мне написать что вы считаете неправильным. Можем продолжить общение в личке.
38. manuel 318 28.05.19 16:28 Сейчас в теме
(37)Да дело не в том что я считаю неправильным, просто для одного один функционал важнее, для другого другой. Было бы интересно, если бы например инфостарт делал бы что то типа сравнительных обзоров по основным однотипным продуктам. А так это все очень предвзятая оценка.
Evg-Lylyk; +1 Ответить
39. bugtester 265 03.06.19 12:21 Сейчас в теме
Добрый день!
Идея из статьи получения запроса со всеми параметрами из отладчика очень порадовала. Помимо прочих плюшек, в виде параметров из кода на встроенном языке и пр.
Решил применить к отладке и просмотру запросов из ЗУП 3.1, которые используют представления, соответственно их текст просто так в консоль ручками не копируется.
Взял обычный отчет ЗУП 3, например, ОтчетыПоСотрудникам. Там запрос с представлениями - в СКД, как в общем-то в основном в остальных отчетах ЗУП 3.1. Заполнение представлений происходит в функции ЗаполнитьОбщиеИсточникиДанныхОтчета() общего модуля ЗарплатаКадрыОбщиеНаборыДанных.
Поставил точку останова в конце этой процедуры и попытался при отладке выполнить:
УКО_Запрос.СохранитьВНастройки(Объект.СхемаКомпоновкиДанных.НаборыДанных.Данные) - тип НаборДанныхЗапросСхемыКомпоновкиДанных
и
УКО_Запрос.СохранитьВНастройки(Объект.СхемаКомпоновкиДанных.НаборыДанных.Данные.Запрос) - Тип Строка (текст запроса)

получил ошибку:
"Неверный тип параметра, ожидаются типы Запрос, МакетКомпоновкиДанных, ДинамическийСписок, ПостроительЗапроса, ПостроительОтчета, "

Подскажите, как можно применить вашу функцию для сохранения Запроса из отладчика в случае, если этот запрос из СКД?
Прикрепленные файлы:
Evg-Lylyk; +1 Ответить
40. Evg-Lylyk 2552 03.06.19 12:33 Сейчас в теме
(40) тип НаборДанныхЗапросСхемы...не обрабатывается необходимо прописывать его обработку (там есть проблемы нет параметров)
Посмотрите как там организовано получение данных из отладки там не сложно
41. bugtester 265 03.06.19 12:43 Сейчас в теме
(40) Добавите в новой версии консоли?

Можно еще кстати добавить и обработку параметра строка (текст запроса), просто для удобства переноса одного текста без параметров сразу в консоль. Можно конечно и в отладчике открыть текст, скопировать и перенести
42. Evg-Lylyk 2552 03.06.19 12:45 Сейчас в теме
(41) НаборДанныхЗапросСхемы извините пока другие планы
Текст легко переносится через буфер обмена
43. bugtester 265 03.06.19 12:54 Сейчас в теме
(42) НаборДанныхЗапросСхемы - жаль, а было бы очень полезно для использования в ЗУП 3.1
Идеально, если бы такая консоль существовала там в качестве штатной.
44. Evg-Lylyk 2552 03.06.19 13:02 Сейчас в теме
(43) Можете доработать самостоятельно
Оставьте свое сообщение