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

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

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

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

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

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

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

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

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

Этот способ удобно реализован в Управляемой консоли отчетов она позволяет сохранять данные в файле или настройках (ХранилищеСистемныхНастроек).

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

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

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

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

Пример

0. Используем конструктор строки отладки при необходимости

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

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

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

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

60

См. также

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

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

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

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

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

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

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

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

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

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

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

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