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

01.02.08

Разработка - Инструментарий разработчика

При отладке запросов надоело каждый раз заполнять в консоли текст и параметры запроса, которые уже прописаны в конфигурации.
Лень родила идею ...
Отдельное спасибо fixin!!! Идея как вытащить параметры из объекта "Запрос", принадлежит именно ему!!!

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
-
.1196061561 50,38Kb
574 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой
Зачем это нужно :
При отладке я вызываю модально форму консоли, вызвав в отладчике Выражение:
ВнешниеОбработки.Создать("E:\1c\Консоль_запросов.epf ").ОткрытьДляОтладки(Запрос)
Туда передаю Объект - Запрос или ПостроительОтчета и заполняю всё необходимое для дальнейшей отладки, что бы не набивать параметры вручную(очень удобно)
В итоге в любом месте отладчика я могу вызвать консоль запросов уже настроенную для работы с запросом. Очень актуально в ЗУП , где движения по регистрам создаются на время выполнения кода.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    205642    1129    410    

1027

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    36770    211    109    

198

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    16764    73    39    

89

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    24348    65    28    

93

Инструментарий разработчика Программист 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    35236    127    53    

168

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    2008    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    107670    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. German 414 26.11.07 10:47 Сейчас в теме
Да давно руки не доходили сделать
2. ssn1978 71 27.11.07 13:49 Сейчас в теме
Спасибо, прикрутил вызов к Пунтосвитчеру, получилось здорава
user1487303; German; +2 Ответить
3. Ukrandruha 56 27.11.07 15:57 Сейчас в теме
ssn1978, что такое пунтосвитчер?
5. Ukrandruha 56 27.11.07 16:28 Сейчас в теме
http://www.punto.ru/ это понятно, но каким местом моя консоль прикрутилась к нему? :)
6. German 414 27.11.07 16:34 Сейчас в теме
Да не каким. писать в отладчике слишклм муторно
ВнешниеОбработки.Создать("E:\1c\Консоль_запросов.epf ").ОткрытьДляОтладки(Запрос)

он поставил автозамену ..
user1487303; +1 Ответить
7. tormozit 7300 03.12.07 08:54 Сейчас в теме
Аналогичная функциональность имеется и в моей консоли http://infostart.ru//projects/1274/ . Но она не мобильна.
8. Ukrandruha 56 03.12.07 09:26 Сейчас в теме
tormozit, я встречал уже у многих свой код, но идея принадлежит мне, по этому и решил выложить у себя в кладезе :)
12. tormozit 7300 09.12.07 03:33 Сейчас в теме
(8) Уж не знаю, кому она принадлежит, но я на родителя идеи не претендую =) Если ты родитель, то молодец. Идея отличная.
33. AlexO 136 29.07.17 13:21 Сейчас в теме
(8)так Fixin'у или Вам принадлежит идея?
9. Ukrandruha 56 03.12.07 09:34 Сейчас в теме
Надеюсь никто не обидется :)
10. German 414 03.12.07 09:39 Сейчас в теме
и в моей будет (если Андрей не возражает).. .. клево мне понравилось .. я добавил еще функционал без открытия => что бы в файл запросов сохранялся запрос и ВСЕ.
11. Ukrandruha 56 03.12.07 09:45 Сейчас в теме
German, не я не против:) для того и выкладываю, я сам не против у кого чего стянуть:)
13. 0tto 18.12.07 16:37 Сейчас в теме
Под 8.1 не хватает временных таблиц... точнее строчки
ОбъектЗапрос.МенеджерВременныхТаблиц = ЗапросОтладки.МенеджерВременныхТаблиц;
в процедуре ВыполнитьЗапрос()

Идея консольки понравилась

14. tormozit 7300 19.12.07 07:35 Сейчас в теме
Еще не хватает сообщений о том, какие параметры не получилось извлечь.
16. German 414 19.12.07 09:38 Сейчас в теме
(14) а какие например может не получится...? я еще не на одном не прокололся
15. Ukrandruha 56 19.12.07 09:33 Сейчас в теме
tormozit, да вроде и так видно в таблице параметров:)
25. tormozit 7300 19.12.07 22:38 Сейчас в теме
(15) Строго говоря не всегда видно. Вот например видишь ты параметр "МойПараметр" и значение у него Неопределено, но это еще не значит, что этот параметр не был извлечен.
Короче в моей консоли я все довел до ума, если интересно посмотри.
17. Ukrandruha 56 19.12.07 10:06 Сейчас в теме
German, например: Вид движения, Список разрезов регистра расчета
18. Ukrandruha 56 19.12.07 10:09 Сейчас в теме
Из объекта - запрос вынуть параметры целая история, если посмотрите код увидите как там пришлось извращаться, что бы вынуть хотя бы то что есть
19. German 414 19.12.07 10:20 Сейчас в теме
>Вид движения
Установите доступный тип для колонки значение таблицы параметров
20. German 414 19.12.07 10:21 Сейчас в теме
чуть переписал
Код
Если  ТипЗнч(ЗапросОтладки) =Тип("ПостроительОтчета") Тогда
            ЗапросОтладки = ЗапросОтладки.ПолучитьЗапрос();
         КонецЕсли;      
         //сохраняем текст запроса .. потом будем использовать 
         НоваяСтрока = ДеревоЗапросов.Строки.Добавить();
         НоваяСтрока.Запрос = ?(Лев(ЗаголовокЗапросаОтладки,1)="$",ЗаголовокЗапросаОтладки,"$"+ЗаголовокЗапросаОтладки);
         НоваяСтрока.ТекстЗапроса=Строка(ЗапросОтладки.Текст);
         НоваяСтрока.ТекстЗапросаSQL = "";
         НоваяСтрока.Язык= "";
         //определим параметры
         ПараметрыЗапроса = ЗапросОтладки.НайтиПараметры();
         НоваяСтрока.ПараметрыЗапроса=мФормаПараметров.Параметры.Скопировать();
         Для каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл
            ИмяПараметра =  ПараметрЗапроса.Имя;
            СтрокаПараметров = НоваяСтрока.ПараметрыЗапроса.Добавить();
            СтрокаПараметров.ИмяПараметра = ИмяПараметра;
            //получаем значение параметра
            Попытка
               //изменим текст запроса и получим установлнные там параметры
               ЗапросОтладки.Текст = "Выбрать &"+ИмяПараметра;
               Выборка = ЗапросОтладки.Выполнить().Выбрать();
               Если Выборка.Следующий() Тогда
                  СтрокаПараметров.ЗначениеПараметра = Выборка[ИмяПараметра];
               КонецЕсли;   
            Исключение
               //Возможно это список параметров  ссылок
               Для каждого ТипПараметра Из ПараметрЗапроса.ТипЗначения.Типы() Цикл
                  Попытка
                     ИмяОбъекта = Метаданные.НайтиПоТипу(ТипПараметра).ПолноеИмя();
                     ЗапросОтладки.Текст = "Выбрать Ссылка Из "+ИмяОбъекта+" ГДЕ Ссылка В(&"+ ИмяПараметра+")";
                     РезультатЗапроса = ЗапросОтладки.Выполнить().Выгрузить();
                     Список=Новый СписокЗначений();
                     Список.ЗагрузитьЗначения(РезультатЗапроса.ВыгрузитьКолонку("Ссылка"));
                     СтрокаПараметров.ЗначениеПараметра = Список;
                  Исключение
                  КонецПопытки; 
               КонецЦикла;                                
            КонецПопытки;
         КонецЦикла;
         //восстановим текст запросачтобы можно было в дальнейшим продолжить отладку без проблемм
         ЗапросОтладки.Текст=НоваяСтрока.ТекстЗапроса;
Показать полностью
26. tormozit 7300 20.12.07 08:15 Сейчас в теме
(20) У меня надо сначала открыть построитель в консоли построителей, а потом уже из нее исполняемый запрос можно открыть в консоли запросов.
21. Ukrandruha 56 19.12.07 10:50 Сейчас в теме
German, ничего нового не нашел:)
22. Ukrandruha 56 19.12.07 10:56 Сейчас в теме
В общем как ни крути вынуть из параметра список из строковых значений нельзя :(
23. Ukrandruha 56 19.12.07 12:02 Сейчас в теме
Сейчас на конференции "1С:Предприятие 8" просят разработчиков добавить доступ к коллекции параметров, если сделают, тема параметров будет закрыта:)
24. tormozit 7300 19.12.07 22:27 Сейчас в теме
(23) Собственно это я и создал ту тему
27. marih 29.10.08 10:20 Сейчас в теме
Снимите уже рейтинг=3 для скачивания, пожа-а-а-луйста!
28. vet7777 635 14.01.09 14:30 Сейчас в теме
варианты решения проблемы, если параметр типа ВидДвиженияНакопления
- использовать первый попавшийся регистр накопления
- руками прописать имя существующего непустого регистра накопления остатков
- попробовать поискать и извлечь из текста запроса имя регистра накопления
вот пример по первому варианту:
Если ПараметрЗапроса.ТипЗначения = Новый ОписаниеТипов("ВидДвиженияНакопления") Тогда
Попытка
РегНак = Метаданные.РегистрыНакопления[0].Имя;
ЗапросОтладки.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 ВидДвижения ИЗ РегистрНакопления."+РегНак+"ГДЕ ВидДвижения=&"+ИмяПараметра;
РЗ = ЗапросОтладки.Выполнить().Выгрузить();
СтрокаПараметров.ЗначениеПараметра = РЗ[0]["ВидДвижения"];
Продолжить;
Исключение
КонецПопытки;
КонецЕсли;
29. пользователь 08.04.09 21:38
Сообщение было скрыто модератором.
...
30. baza1978 27.09.11 13:25 Сейчас в теме
31. bitrostov 08.02.12 16:54 Сейчас в теме
Спасибо, полезная вещь!
32. AlexO 136 29.07.17 13:19 Сейчас в теме
Андрей, у Вас же это доработка одной из первых консолей еще для 8.0 от DmitrO (Никоноров Дмитрий). А здесь, в тексте, ничего не указали, только в самой обработке.
Оставьте свое сообщение