Загрузка текста запроса, параметров, данных временных таблиц
Конфигурации 1С становятся все сложнее часто используются временные таблицы. Данные можно получать непосредственно из отладки.
Для обычных форм вопрос решался через экспортную функцию в модуле консоли, которая получает данные и открывает форму консоли (подобный функционал есть во многих консолях запросов).
Ниже описан метод которой решает ту же проблему для управляемых форм:
В управляемых формах нельзя открыть форму в контексте сервера, но можно получить данные и сохранить я называю это отложенной отладкой.
Этот способ удобно реализован в Управляемой консоли отчетов она позволяет сохранять данные в файле или настройках (ХранилищеСистемныхНастроек).
Сохранение в настройках более удобно т.к. не нужно иметь папку которая доступна клиенту и серверу.
Вызов отладки правильнее получать из Консоль — Инструменты — Конструктор строки отладки
Используется экспортная функция: УКО_Запрос.СохранитьВНастройки(Запрос, ИмяНастройки = "Запрос (из отладки)") Возвращает "Сохранено успешно" — все хорошо, если произойдет ошибка вернет строку с текстом ошибки.
Есть аналогичная функция для сохранения в файл: УКО_Запрос.СохранитьВФайлНаСервере (Запрос, Путь, ИмяБезРасширения = "Запрос (из отладки)")
Пример
0. Используем конструктор строки отладки при необходимости
1. В конфигураторе ставим точку останова перед выполнением интересующего нас запроса
В табло вставляем УКО_Запрос.СохранитьВНастройки(Запрос)
2. Открываем консоль в последних открытых данных должна появится строка Запрос (из отладки).
3. Открываем данные и работаем
Интересно было бы, если бы это отработало с менеджером временных таблиц.
(2) Работает. Таблицы МВТ считываются и добавляются МВТ консоли
огонь вообще!
А чем отличается от упомянутой консоли или от «Запросник 2.0»?
(4) Много чем моё субъективное сравнение
[8.3] Управляемая консоль отчетов (расширение, ВНЕШНЯЯ ОБРАБОТКА)
Подробнее
Чувствую подвох, но никак не пойму где…
1) «управляемая консоль отчетов 2.5.2» входит в состав демонстрационной конфигурации «управляемое приложение» ? если нет, то вот в упор не вижу кнопки «скачать»…
2)
была мысль, что это продолжение статьи про консоль запросов по ссылке… но ведь в этой статье используется подобное решение…
опять таки, если это подобное решение, где ссылочка на текущее решение?
(6) Здесь описана методика отладки запроса на УФ.
Управляемая консоль отчетов это продукт поставляется в основном в виде расширения, но есть и внешняя обработка. Реализация описана из УКО. Уберу «Подобное рещени…» чтобы не путать.
(8) Ссылка в статье
https://infostart.ru/public/835718/
Плюсую
Подскажите, как я поняла, значения параметров не передаются?
Но в них вся соль, к тому же бывает что они — таблицы!
Может подскажите какой-нибудь вариант?
(11) Все хорошо. Из объекта запрос считываются параметры и временные таблицы
(11) Посмотрите 4,5 скриншоты
(13) На этих скриншотах вижу что значения параметров не заполнены.
Не так?
(14) Да, неудачный скриншот. Спасибо, учту
Добрый день!
Помогите разобраться с консолью:
когда вставляю в табло
пишет значение —
Переменная не определена (УКО_Сервер)
и в меню файл Запрос (из отладки) не появляется
хотя вроде как расширение встало нормально и раздел новый появился «Упр. консоль отчетов»
Может я вызываю его из слишком специфичного места? Вызываю из обработки Модуль_ДиадокУФ, которая вставлена в конфигурацию, которая в свою очередь запускает модуль, который лежит в в виде внешней обработки на диске в указанной папке.
//Там сложные запросы в которых
черт ногу сломитникак не могу разобраться.(16) Из предоставленной информации: Возможно вы запускаете не на сервере.
Необходимо поставить точку останова на Запрос.Выполнить() ну или когда уже все заполнено далее в табло вычисляемого выражении Shift+F9 вставить текст.
Текст можно получить через консоль — Инструменты — Конструктор строки отладки…
УКО_Сервер — серверный модуль… нужно вызывать в контексте сервера
(17)
да, по точке останова останавливаюсь на Запрос.Выполнить()
значит нахожусь на сервере.
через инструменты тоже не получается, видимо по той же причине: раз в табло написало мне «Переменная не определена (УКО_Сервер) »
значит вызов не прошел
А понял вместо УКО_Сервер используйте УКО_Запрос
Правильнее текст можно получить через консоль — Инструменты — Конструктор строки отладки
Статью поправлю
(19)Спасибо, что помогаете!
Оно продолжает ругаться, но теперь по новому:
Хотя бы «УКО_Запрос» видит
(20) Рад помочь, там просто многое переработал, а статью не поправил. Мои извинения за неудобства
Используйте УКО_Запрос.СохранитьВНастройки
Проверьте конструктором отладки (инструмент в консоли)
(19)
Точно! Там написано совсем иначе:
УКО_Запрос.СохранитьВНастройки(Запрос)
Теперь еще по 3-му ругается:
Видимо ошибка
Попробуйте
В указанной строке 470 (УКО_Запрос)
» Если ЗначениеЗаполнено(Объект.МенеджерВременныхТаблиц) Тогда»
заменить на
» Если Объект.МенеджерВременныхТаблиц <> Неопределено Тогда»
(23)Поменяла.
О_О
OMG Все получилось!
И параметры видно заполненные и результат запроса в консоле!
Сейчас умру от счастья!
Извиняюсь что отвлекаю, может подскажите куда копать?
При попытке загрузки в консоль второго запроса, через Данные — Запрос (из отладки) получаю ошибку:
(25) Судя по сообщению… ошибка при передаче таблицы значений. Возможно ошибка, на выходных проверю запрос с ВТ.
Нужно подробнее давайте только лично пообщаемся чтобы не забивать статью комментариями.
Нажмите подробно и пришлите может удастся быстро решить
А как дела с производительностью? Например, 10 временных таблиц, в каждой по 10 колонок и 10 тыс. строк. Сколько по времени будут сохраняться данные, и сколько будет запрос открываться в консоли?
(27) Есть лимит (моя проверка) ячеек 500000 на одну ТЗ.
При больших объемах конечно будут проблемы. Не решал и не анализировал данный вопрос.
Расширение добавил в ЗУП3, безопасный режим убрал галку. В конфигураторе видно расширение. В программе консоли нет ((, подскажите , что может быть не так
(29) Посмотреть инструкцию по установке. Возможно не запускали обработку УКО_УстановкаРасширения.
(30) Спасибо. Появилась консоль. В зупе3 при тестировании расшифровкки РСВ1 (база 5500 сотрудников) говорит, что превышен размер ВТ
(31) Все другое отрабатывает отлично, будем активно использовать)))
(11) А мы сделали так, что в отладке в конфигураторе параметры запроса преобразовываем в строку, а в консоли запросов 2.0 читаем из строки и вуаля, все параметры в том же виде загружены ))
Вот пример когда работает без расширений и без лишних телодвижений —https://infostart.ru/public/617990/ .
Нажали кнопку «Сформировать скрипт выгрузки», вставили текст скрипта в отладчик, нажали «Загрузить данные запроса»
И все данные запроса загрузились, и текст и параметры и таблицы из менеджера.
Ну и бонусом, граф запроса отрисовался.
(34) В консоли есть вариант в виде внешней обработки и работает также как вы привели.
Граф отрисовывается здорово, только есть множество других неудобных моментов проект не развивается очень давно.
Приложил файл сравнения функциональности
(35)Не, ну каждый может под себя такую табличку подогнать. Всегда можно расставить баллы так, что ты красавчик, а остальные так себе). Если б это было какое то исследование независимой организацией, можно было бы такие таблички всерьез рассматривать.
По поводу — «много неудобных моментов», ну это очень субъективно. В комментариях особо жалоб я не вижу.
А по поводу того, что проект не развивается, неправда. Последнее обновление было полгода назад. Готовится новое очень серьезное обновление. То что это не быстро, так извините и проект не из самых простых.
(36) оценка субъективная. Можете мне написать что вы считаете неправильным. Можем продолжить общение в личке.
(37)Да дело не в том что я считаю неправильным, просто для одного один функционал важнее, для другого другой. Было бы интересно, если бы например инфостарт делал бы что то типа сравнительных обзоров по основным однотипным продуктам. А так это все очень предвзятая оценка.
Добрый день!
Идея из статьи получения запроса со всеми параметрами из отладчика очень порадовала. Помимо прочих плюшек, в виде параметров из кода на встроенном языке и пр.
Решил применить к отладке и просмотру запросов из ЗУП 3.1, которые используют представления, соответственно их текст просто так в консоль ручками не копируется.
Взял обычный отчет ЗУП 3, например, ОтчетыПоСотрудникам. Там запрос с представлениями — в СКД, как в общем-то в основном в остальных отчетах ЗУП 3.1. Заполнение представлений происходит в функции ЗаполнитьОбщиеИсточникиДанныхОтчета() общего модуля ЗарплатаКадрыОбщиеНаборыДанных.
Поставил точку останова в конце этой процедуры и попытался при отладке выполнить:
УКО_Запрос.СохранитьВНастройки(Объект.СхемаКомпоновкиДанных.НаборыДанных.Данные) — тип НаборДанныхЗапросСхемыКомпоновкиДанных
и
УКО_Запрос.СохранитьВНастройки(Объект.СхемаКомпоновкиДанных.НаборыДанных.Данные.Запрос) — Тип Строка (текст запроса)
получил ошибку:
«Неверный тип параметра, ожидаются типы Запрос, МакетКомпоновкиДанных, ДинамическийСписок, ПостроительЗапроса, ПостроительОтчета, »
Подскажите, как можно применить вашу функцию для сохранения Запроса из отладчика в случае, если этот запрос из СКД?
(40) тип НаборДанныхЗапросСхемы…не обрабатывается необходимо прописывать его обработку (там есть проблемы нет параметров)
Посмотрите как там организовано получение данных из отладки там не сложно
(40) Добавите в новой версии консоли?
Можно еще кстати добавить и обработку параметра строка (текст запроса), просто для удобства переноса одного текста без параметров сразу в консоль. Можно конечно и в отладчике открыть текст, скопировать и перенести
(41) НаборДанныхЗапросСхемы извините пока другие планы
Текст легко переносится через буфер обмена
(42) НаборДанныхЗапросСхемы — жаль, а было бы очень полезно для использования в ЗУП 3.1
Идеально, если бы такая консоль существовала там в качестве штатной.
(43) Можете доработать самостоятельно
при получении данных из отладки выходит ошибка
Поле объекта не обнаружено (Type)
как побороть? вроде делал по описанию, в отладке был текст Успешно сохранено
(45) Скачайте последнию версию 3.7.6
(46) спасибо за быстрый ответ! эта ошибка ушла, буду смотреть дальше.
еще ошибка вышла, при выполнении части запроса, конструктор Новый (тип) — выходит исключение если Тип — НеизвестныйОбъект
может что-то поменять в коде, чтобы обработался этот случай?
(48) Попробуй исключить обработку этого типа написать что то типа
Если Тип = <НеизвестныйТип>
Продолжить
(48) Ну или в попытку записать