gifts2017

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

Опубликовал Andrey Tey (Bitnikov) в раздел Программирование - Инструментарий

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

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

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

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

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

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

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

 Табло

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

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

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

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Консоль запросов с импортом параметров
.epf 39,41Kb
12.07.12
124
.epf 39,41Kb 124 Скачать
Шаблон текста (Значение в файл)
.st 0,20Kb
12.07.12
16
.st 0,20Kb 16 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Василий Антонов (khaoos) 13.07.12 04:58
Как вариант, сериализовывал бы весь запрос в файл, а в консоли и текст и параметры заполнял полностью из файла.
2. Andrey Tey (Bitnikov) 13.07.12 09:18
(1) khaoos, спасибо, действительно можно попробовать упростить передачу текста запроса вместе с параметрами.
Доработаю на днях.
3. blindcat2006 (blindcat2006) 13.07.12 10:38
4. Andrey Tey (Bitnikov) 17.07.12 09:15
(1) khaoos, сериализовать запрос в окне Табло в момент отладки не получится, поэтому этот вариант отпадает...
5. Andrey Tey (Bitnikov) 17.07.12 09:16
6. Василий Антонов (khaoos) 17.07.12 09:48
(4) Bitnikov, действительно: Запрос не сериализуется. Читал одну публикацию давненько, мне казалось, там автор это делал. Но память меня подвела, там речь шла о результате запроса.
7. Василий Антонов (khaoos) 17.07.12 10:01
В принципе, многие консоли предоставляют экспортную функцию "Отладить" или что-то типа того, куда передается в качестве параметра сам объект типа "Запрос". Можно также нарисовать функцию, например, "СохранитьДляОтладки", в которую передавать запрос и имя файла (можно короткое), в самой функции сериализовывать структуру, состоящую из текста запроса и таблицы параметров, в файл с указанным именем (если имя короткое - сохранять в папку с обработкой). Но в табло придется тогда вручную писать ВнешниеОбработки.Создать(<ИмяФайлаОбработки>).СохранитьДляОтладки(Запрос, <ИмяФайла>). Такое ощущение, что лучше оставить все как есть, кажется, что без особой надобности все это :)
8. Доржи Балбаров (Angeros) 17.07.12 19:40
Есть что-то похожее в консоли Чистова. В своей консоле сделал кнопку которая возвращает готовую строку, ее вызываем по shift-f9 далее все выполняется заботливым кодом самой консоли.
9. Andrey Tey (Bitnikov) 17.07.12 21:35
(8) Angeros,
Можно ссылку на консоль Чистова?
Не совсем понял что за готовую строку возвращает кнопка в вашей консоли?
Суть этой консоли - отладка запросов, хранящихся в конфигурации.
10. Доржи Балбаров (Angeros) 18.07.12 05:52
(9) Bitnikov, Готовая строка вот что-то на подобии такой - ВнешниеОбработки.Создать(<ИмяФайлаОбработки>).СохранитьДляОтладки(Запрос)
но только полностью заполнена <ИмяФайлаОбработки> - т.к. он известен. этих параметров достаточно.

Отладка запросов при отладке одна из важнейших функций всех доработанных консолей
11. Доржи Балбаров (Angeros) 18.07.12 06:07
(9) Bitnikov, вообще поиск рулит.

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

Для себя писал консоль сам, и частично заимствовал идеи оттуда.
12. Владимир Чаклин (vec435) 18.07.12 08:31
выгружать параметры отдельно - не удобно, хотя при данной реализации просто. Лучше написать функцию, которая их обрабатывает и передает из отладчика.
13. Andrey Tey (Bitnikov) 18.07.12 12:36
(11) Angeros, да есть плюс тех консолях в том что там можно сохраниь запрос с параметрами в файле. В этой консоли плюс - простота использования :)
14. EfiopReal (Созинов) 19.07.12 13:53
+1 за идею
По моему пора объединяться и сливать все идеи по консоли в одну разработку, которую и обновлять, хотя наврное уже сделали.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа