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


Консоль запросов с возможностью импорта параметров запроса (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 не будет опубликован. Обязательные поля помечены *