Консоль запросов с возможностью импорта параметров запроса


Консоль запросов с возможностью импорта параметров запроса (1С 8.2: обычные формы)

Разработчикам 1С, часто, приходится анализировать результаты сложных запросов в конфигурации с большим количеством параметров. Отлаживать такие запросы проще в консоли запросов в режиме 1С-Предприятия, т.к. при изменении не требуется перезапускать 1С. Но при этом возникают пброблемы с точной имитацией параметров в консоли запросов. Если же тест запроса можно легко выловить в отладчике через свойство запроса — Запрос.Текст, то вот перенести большое количество параметров из конфигуратора в стандартрую консоль запросов можно только вручную, что занимает продолжительное время.

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

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

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

ЗначениеВФайл(«C:\_Параметры.txt»,Запрос.Параметры)

Запрос.Текст

 Табло

Далее уже в режиме 1С-Предприятия в консоли запросов вставить текст запроса и заполнить параметры данного запроса из внешнего файла.

  ЗагрузкаПараметров

Видим заполненные параметры, после чего можно выполнять запрос в консоли:

 ПараметрыЗапроса

Чтобы всегда иметь под рукой вспомогательную строчку сохранения праметров — ЗначениеВФайл(«C:\_Параметры.txt»,Запрос.Параметры)

Можно ее сохранить в шаблоны. Если у кого-то возникли проблемы с созданием собственного Файла шаблонов 1С, то приланаю отдельный файл с шаблонами в котором хранится данная строка.

 Шаблон текста

14 Comments

  1. khaoos

    Как вариант, сериализовывал бы весь запрос в файл, а в консоли и текст и параметры заполнял полностью из файла.

    Reply
  2. Bitnikov

    (1) khaoos, спасибо, действительно можно попробовать упростить передачу текста запроса вместе с параметрами.

    Доработаю на днях.

    Reply
  3. blindcat2006

    «+» за идею

    Reply
  4. Bitnikov

    (1) khaoos, сериализовать запрос в окне Табло в момент отладки не получится, поэтому этот вариант отпадает…

    Reply
  5. Bitnikov

    (3) blindcat2006, спасибо!

    Reply
  6. khaoos

    (4) действительно: Запрос не сериализуется. Читал одну публикацию давненько, мне казалось, там автор это делал. Но память меня подвела, там речь шла о результате запроса.

    Reply
  7. khaoos

    В принципе, многие консоли предоставляют экспортную функцию «Отладить» или что-то типа того, куда передается в качестве параметра сам объект типа «Запрос». Можно также нарисовать функцию, например, «СохранитьДляОтладки», в которую передавать запрос и имя файла (можно короткое), в самой функции сериализовывать структуру, состоящую из текста запроса и таблицы параметров, в файл с указанным именем (если имя короткое — сохранять в папку с обработкой). Но в табло придется тогда вручную писать ВнешниеОбработки.Создать(<ИмяФайлаОбработки>).СохранитьДляОтладки(Запрос, <ИмяФайла>). Такое ощущение, что лучше оставить все как есть, кажется, что без особой надобности все это 🙂

    Reply
  8. Angeros

    Есть что-то похожее в консоли Чистова. В своей консоле сделал кнопку которая возвращает готовую строку, ее вызываем по shift-f9 далее все выполняется заботливым кодом самой консоли.

    Reply
  9. Bitnikov

    (8) Angeros,

    Можно ссылку на консоль Чистова?

    Не совсем понял что за готовую строку возвращает кнопка в вашей консоли?

    Суть этой консоли — отладка запросов, хранящихся в конфигурации.

    Reply
  10. Angeros

    (9) Готовая строка вот что-то на подобии такой — ВнешниеОбработки.Создать(<ИмяФайлаОбработки>).СохранитьДляОтладки(Запрос)

    но только полностью заполнена <ИмяФайлаОбработки> — т.к. он известен. этих параметров достаточно.

    Отладка запросов при отладке одна из важнейших функций всех доработанных консолей

    Reply
  11. Angeros

    (9) вообще поиск рулит.

    Один из клонов вот тут или тут есть.

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

    Reply
  12. vec435

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

    Reply
  13. Bitnikov

    (11) Angeros, да есть плюс тех консолях в том что там можно сохраниь запрос с параметрами в файле. В этой консоли плюс — простота использования 🙂

    Reply
  14. Созинов

    +1 за идею

    По моему пора объединяться и сливать все идеи по консоли в одну разработку, которую и обновлять, хотя наврное уже сделали.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *