Отладчик запросов /обновление 11.04.2014/

03.04.23

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

Соединение двух проектов - "Выполнение и отладка запроса" и "Визуальная структура запроса" в новый проект - отладчик запросов. Функционал простого парсера текста запросов (реализованного на языке 1С без внешних компонент), позволил создать новые функции для построения текста запроса и отладки его результатов.

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

Наименование Файл Версия Размер
Отладчик запросов (by Акулов А.С.) - сборка 1217.epf
.epf 660,15Kb
189
.epf Версия 1217 (02 сентября 2016 г.) 660,15Kb 189 Скачать
Отладчик запросов (by Акулов А.С.).epf
.epf 648,16Kb
1314
.epf 1216 648,16Kb 1314 Скачать
Отладчик запросов (by Акулов А.С.) - сборка 1082 (предыдущая версия).epf
.epf 173,56Kb
1201
.epf 173,56Kb 1201 Скачать
Отладчик запросов (by Акулов А.С.) - сборка 1072 (предыдущая версия).epf
.epf 177,72Kb
173
.epf 177,72Kb 173 Скачать

Спасибо за помощь пользователю StepByStep (МА!)

 

Обновление от 11.04.2014 (Подробнее...)

 

Соединение двух проектов - "Выполнение и отладка запроса" и "Визуальная структура запроса" в новый проект - отладчик запросов.
Функционал простого парсера текста запросов (реализованного на языке 1С без внешних компонент), позволил создать новые функции для построения текста запроса и отладки его результатов:

1. Средства анализа и преобразования исходного текста запроса:

Встроенная "Визуальная структура запроса" (Подробнее...)
Список запросов пакетного запроса, с возможностью перехода к началу текста нужного запроса из списка. (Подробнее...) 
 Функция "Вложить в запрос" (Подробнее...) 
Функция "Извлечь подзапрос из запроса" (Подробнее...)
(new) Функция "Разложить вложенный запрос в пакетный" (Подробнее...)
(new) Функция "Собрать пакетный запрос во вложенный" (Подробнее...)
Функция "Код запроса" (Подробнее...)
  Автоматический анализ наличия ошибок с выделением слова, на котором произошла ошибка (Подробнее...)

 

2. Средства отладки

  Информационная панель (Подробнее...)
Просмотр временных таблиц (Подробнее...)
Опция "Не удалять временные таблицы" (Подробнее...)
Режим "Пошаговое выполнение пакетного запроса" (Подробнее...)
Просмотр данных источников для составного запроса  одробнее...)

 

3. Прочие функции

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

... "Открыть из отладчика" (Подробнее...)
"Обработка результата" (Подробнее...) 

 

теперь подробнее: 

 

Встроенная "Визуальная структура запроса"

внешний вид переработан, функционал доработан - пользователем  StepByStep (МА!). Кнопка, для вызова:  

пример:

 

Визуальная структура запроса (демо) 

 

Список запросов пакетного запроса

с возможностью перехода к началу текста нужного запроса из списка. Кнопка, для вызова:  

пример:

 

Функция "Вложить в запрос"

Кнопка, для вызова: :

делает из текущего запроса - вложенный посредством помещения его в конструкцию 

ВЫБРАТЬ

  *

ИЗ () КАК ИсточникДанных

 

Функция "Извлечь из запроса"

Кнопка, для вызова:  

извлекает вложенный запрос наружу (делает обратную операцию команде "вложить запрос") при этом все внешние вычисления будут утеряны. 

 

Функция "Разложить вложенный запрос в пакетный" (ноухау)

Кнопка, для вызова:  

Это довольно интересная функция - нигде такого не встречал.
Например запрос:

 

Преобразуется в пакетный запрос:

 

 

Функция "Собрать пакетный запрос во вложенный" (ноухау)

 

Кнопка, для вызова:  

 

Это довольно интересная функция - нигде такого не встречал.
Например запрос:

 

 

 

Преобразуется в запрос:

 

 

Функция "Код запроса"

Кнопка, для вызова:  

Вызывает диалог "Код запроса" с готовыми шаблонами кода запроса для создания отчетов:

Обратите внимание на четвертую вкладку "Универсальный отчет (модуль)". На вкладке содержится заготовка модуля универсального отчета (//infostart.ru/public/84642/)

При переходе на эту вкладку - справа вверху появляется кнопка , при нажатии на которую появится диалог, в котором можно настроить основные параметры для универсального отчета

 

Автоматический анализ наличия ошибок с выделением слова, на котором произошла ошибка

  

Информационная панель

Находится на странице результата запроса сверху:

Она разделена на три части - в первой показывается затраченное время в милимекундах, во второй - количество записей, а в третьей - тип результата.

Тип результата зависит от последнего запроса - это может быть выборка, создание временной таблицы или уничтожение её.

 

Просмотр временных таблиц

Кнопка, для вызова:  

 

Опция "Не удалять временные таблицы"

Кнопка, для вызова:  

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

 

Режим "Пошаговое выполнение пакетного запроса"

Кнопка, для вызова:  

 

Просмотр данных источников для составного запроса

Кнопка, для вызова:  

 

 

Функция  "Открыть из отладчика"

Кнопка, для вызова:  

 

Функция "Обработка результата"

Кнопка, для вызова:   (на странице результата)

Обрабатывать возможно только таблицу значений. Если запрос выгружен в дерево значений - то обработка будет запрещена (кнопка будет неактивна)

 

А что еще?

На самом деле это еще и не весь функционал... хотя освещены самые важные моменты... Дополнительно есть еще - сортировка в диалоге просмотра виртуальных таблиц, в списке параметров удобно указывать тип и выбирать значения. Можно выбрать тип список значений или таблицу значений. Для последней реализован диалог ввода плюс диалог загрузки из файла или из табличного документа (как в статье "Как программисту быстро загрузить данные из Excel") и еще какие-то мелкие примочки...

 

А что дальше?

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

 

Чем пользовался? 

Для снятия скриншотов (для данной статьи) - использовал бесплатную и удобную утилиту "PicPick".

Использованы наработки по следующим разработкам:

  1. Коллекция полезных кнопок и процедур для отчетов и обработок v2.03

  2. Универсальный отчет (4.2.0.1)

  3. Подсистема "Инструменты разработчика" v2.82

и наверняка что-то еще... кого упустил - пишите... добавлю!..

  

Хотите помочь?

Высказывайте ваши предложения и пожелания в комментариях.
Если кто-то хочет принять участие в разработке - буду рад!

 

Обновление от 11.04.2014

1. Совместимо с подсистемой "Инструменты разработчика"

2. Встраивание класса "Контекстная подсказка"

При наличии в составе конфигурации подсистемы ИР - интегрируется класс "Поле текстового документа с контекстной подсказкой"
При отсутствии ИР - интегрируется устаревший класс (который был в виде отдельной обработки ранее размещен на просторах Инфостарта) - этот класс устаревший, имеет свои недостатки (например, нет контекстной подсказке по процедурам общих модулей), но для его использования не нужно регистрировать дополнительные компоненты. 

Пункт меню

3. Режим выполнения без проверки на ошибки

4. Режим выполнения запроса по выделенной части запроса

5. Пошаговое выполнение пакета запросов -> Возможность повторить шаг (вернуться на шаг назад)

6. Пошаговое выполнение пакета запросов -> Возможность перезаполнять параметры запроса на каждом шаге

7. Вкладка "Параметры" значительно переработана:

+  Добавлена возможность вводить параметры типа "Граница" и "МоментВремени";
+  Добавлена кнопка "Обновить";
+  Добавлена колонка "Где встречается" (по одному из пожеланий) + при двойном щелчке по ней - переход к данному параметру в тексте запроса;
+  Колонка "СЗ" (флажок) - при установке данного флажка - параметр будет представлять из себя список значений, а тип в колонке "Тип значения" будет использован в редакторе списка значений - как тип по-умолчанию;
+  Колонка "Автозаполнение" - действует только на начальнйю или конечную даты (заполнять ли их значениями из НачПериода и КонПериода);
 

+  Задание своего кода установки параметров (кнопка Код установки) - в некоторых случаях будет удобно; 
 

8. Для кода обработки результата добавлена возможность задавать параметры.

9. Добавлен "Конструктор правила для экспресс-проверки ведения учета" (вызывается кнопкой на странице "Результат").

 

См. также

SALE! 20%

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122178    670    389    

714

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7297    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3544    11    1    

34

SALE! 30%

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177759    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

5000 руб.

07.02.2018    99349    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18117    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28111    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. StepByStep 3667 11.06.13 15:50 Сейчас в теме
ПОЗДРАВЛЯЮ С РЕАЛИЗАЦИЕЙ ПРОЕКТА !!!
2. DrAku1a 1679 11.06.13 15:58 Сейчас в теме
Спасибо! И тебя также! Думаю, это только начало ;-)
3. webester 26 11.06.13 17:31 Сейчас в теме
Выглядит невероятно круто. Надо обязательно рассмотреть поподробнее.
4. fuxic 297 11.06.13 18:50 Сейчас в теме
ктрл+шифт+z освободи - прячет окно сообщений
В контекстное меню текста запроса советую добавить "конструктор" и кучу других кнопок для работы с запросом. Там же можно будет уже увидеть их горячие клавиши.
5. Damian 909 11.06.13 21:15 Сейчас в теме
Функция "Разложить вложенный запрос в пакетный" - весьма нужная штука.
Я вручную в модуле партионного учета так переделывал запрос - результат налицо: прирост скорости работы в разы :)
6. hobi 615 12.06.13 05:23 Сейчас в теме
Громадный плюс уже только за одну функцию "Разложить вложенный запрос в пакетный" !
7. sbr 12.06.13 09:43 Сейчас в теме
Однозначно ПЛЮС.
Вчера долбался в запросом по табличным частям 4 документов.
Итоги надо было посчитать по колонке "Количество".
Сделал все "по-науке", как в матчасти написано.
Запрос улетел куда-то в космос...
Плюнул на все и сделал выборку по докам и итог по колонке табличной части.
За 15 сек. результат готов.
А ведь хочется правильно делать, дабы не краснеть перед коллегами.
А тут такой инструмент появился.
Будем осваивать.
ЕЩЕ РАЗ СПС !
8. DoctorRoza 12.06.13 11:09 Сейчас в теме
Обработка круть, забираю однозначно. Если она будет развиваться дальше, цены ей не будет. А теперь .. немного хотелок и багов :)
При переключении со страницы Параметры на Результат, последняя позиционируется на ячейке ТЧ и верхняя панель со временем, количеством и источником сдвигается вверх, а её бы видеть. Предложение: установить её влево или вниз. Не понял кнопку "Расковычить". Формат сохраненного запроса хотелось бы видеть в *.txt. Для кнопки Отменить изменение, добавить собрата Отменить изменение в противоположную сторону, как в запроснике. При выполнении пакета запросов "по шагам", на странице Результат, кнопка Вывести таблицу выдает ошибку "Выбрать ..". Полученные результаты пакетов желательно иметь возможность сохранять в ёкселе (запросник). В Параметры добавить колонку, что то типа в каком пакете/вложенном запросе этот параметр устанавливается. Добавить дерево, с боку, запросов с иерархией,чтобы можно было выбирать, из загруженных файлом, какой запрос сейчас "прорабатывается". Пока хватит :)!
/////
Возьмите на вооружение, так на будущее, если сделать возможность загрузки из запросов СКД, т.е. xml.

Успехов и дальнейшего развития! :) И с праздником!
9. ivanov660 4330 12.06.13 11:47 Сейчас в теме
Функцию из пакетного запроса в вложенный запрос можно смело удалять. Как сами 1с-ки советуют не использовать вложенные запросы.
Так молодца :-)
13. DrAku1a 1679 12.06.13 15:17 Сейчас в теме
(9),(10) Да. Функция сделана чтобы показать что и обратно собирать запросы возможно. Кстати, она довольно забавно себя ведет когда одна и та-же ВТ в запросе используется дважды-трижды... Но убирать не буду - только помечу в описании "не рекомендуется использовать".

(10) По поводу виртуальных таблиц - идея хорошая. Буду думать в этом направлении (пока что парсер текста запросов у меня не имеет функций определения полей таблицы (потому и не реализованы еще анализ отсеивания данных по условиям и анализ связывания данных).

(11) Думаю, распарсивать модуль отчета - весьма сложная задача. Вы можете брать запрос из процедуры "УстановитьНачальныеНастройкиУпр" - и использовать его как основу для доработки. Но поля настраивать придется все-же вручную (ИМХО - это не сильно напрягает).

(4),(8),(10) и тем, кто писал в личку - СПАСИБО! Все Ваши пожелания и идеи приняты.
10. _Ramzes 125 12.06.13 12:02 Сейчас в теме
Плюс однозначно. Но есть вопрос. Для чего используются возможности пакетный во вложенный? Это просто показ возможности, что типа такое есть? А в остальном, меняю обработку Запросник82 на вашу, теперь буду ей пользоваться.
Из пожеланий, было бы хорошо реализовать анализ индексов во временных таблицах.
Чтобы к примеру есть 20 ВременныхТаблиц, и чтобы обработка анализировала по каким полям идет отбор или соединение и говорила что в виртуальной таблице Такой-то было бы хорошо врубить индексирование по полю Такое-то.
Ах ну и было бы однозначно здорово начать переделывать под управляемое приложение тонкий клиент. На данный момент не знаю не одного стоящего (не хуже Запросник82) консоли запросов под управляемое приложение.
Vida; корум; jobkostya1c_ERP; CratosX; +4 Ответить
11. 1cmax 152 12.06.13 13:21 Сейчас в теме
Мега круто, понравились макеты кода запроса.
Вот если бы еще можно было выпилить из типовой 10.3 модуль отчета, распарсить
и визуальными настройками как в вашей обработке настроить отчет под себя
а то допиливание отчетов на основе универсального отчета в 10.3 не сахар.
12. glek 119 12.06.13 14:04 Сейчас в теме
Сума сойти. Однозначно плюс
14. Гость 13.06.13 04:20
Очень полезная разработка, спасибо!

Есть замечание. Если в конфигурацию уже встроены "Инструменты разработчика" , то возникает ошибка:
{ВнешняяОбработка.ОтладчикЗапросов.МодульОбъекта(841,9)}: Процедура или функция с указанным именем уже определена (ЛксПолучитьТекущееВремяВМиллисекундах)
Этот метод определен в глобальном модуле "Инструментов разработчика".

У нас встроена еще подсистема СМС от сюда http://infostart.ru/public/14204/, где есть глобальный метод ЗаполнитьПараметрыЗапроса. Это конечно наша проблема, но может быть на будущее дать методу боле уникальное имя?
15. DrAku1a 1679 13.06.13 04:55 Сейчас в теме
16. Manoshkin 346 13.06.13 09:05 Сейчас в теме
Очень полезная вещь. Буду разбираться.
17. Al-X 13.06.13 09:12 Сейчас в теме
Спасибо за разработку ! Думаю очень пригодиться, хотя пока хватает Инструментов Разработчика.
Буду ждать на управляемых формах.
Еще раз: Спасибо.
18. break 33 13.06.13 09:29 Сейчас в теме
Очень не хватает дерева запросов слева или изначально задумано что отладчик работает с одним запросом?
+ вываливается ошибка при попытке создании копии с включенной кнопкой "Раскрашенный текст"
Форма.ОсновнаяФорма.Форма(1608)}: Поле объекта не обнаружено (мКнопкаРаскраски)
НоваяФорма.КПЗапросаРаскраска(НоваяФорма.мКнопкаРаскраски);
19. break 33 13.06.13 10:04 Сейчас в теме
+ нет режима выполнения запроса по выделенной части запроса
20. Азбука Морзе 104 13.06.13 10:05 Сейчас в теме
Автору на заметку: функции из общих модулей некоторых типовых конфигураций вроде СообщитьОбОшибке(), ПустоеЗначениеТипа() конфликтуют с аналогичными из обработки.
21. smir 52 13.06.13 10:05 Сейчас в теме
Хорошая работа, будем тестить.
22. Азбука Морзе 104 13.06.13 10:13 Сейчас в теме
Вот еще - при попытке открытия запроса вывалилось:

{Форма.ОсновнаяФорма.Форма(291)}: Поле объекта не обнаружено (ТипЗначения)


{"#",e603c0f2-92fb-4d47-8f38-a44a381cf235,
{1,
{8,
{0,"Запрос",
{"Pattern",
{"S",100,1}
},"Запрос",172},
{1,"ТекстЗапроса",
{"Pattern"},"",0},
{2,"ПараметрыЗапроса",
{"Pattern"},"",0},
{3,"СпособВыгрузки",
{"Pattern"},"",0},
{4,"СтруктураПериода",
{"Pattern"},"",0},
{5,"ВыборкаТекст",
{"Pattern"},"",0},
{6,"ПередВыборкойТекст",
{"Pattern"},"",0},
{7,"ПослеВыборкиТекст",
{"Pattern"},"",0}
},
{2,8,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,
{1,1,
{2,0,5,
{"S","Запросы"},
{"S","ВЫБРАТЬ
	МАКСИМУМ(Календарь1.Дата) КАК НаДату,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Календарь1.Дата) КАК РабочихДней,
	Календарь2.Дата КАК ДатаДляГруппировки
ПОМЕСТИТЬ врРабДни
ИЗ
	РегистрСведений.КалендарьРабочихДней КАК Календарь1
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КалендарьРабочихДней КАК Календарь2
		ПО Календарь1.Дата <= Календарь2.Дата
ГДЕ
	Календарь1.Рабочий = 1
	И Календарь1.Дата МЕЖДУ &ДатаНач И ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, &Срок + 15)
	И Календарь2.Дата МЕЖДУ &ДатаНач И ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, &Срок + 15)

СГРУППИРОВАТЬ ПО
	Календарь2.Дата

ИМЕЮЩИЕ
	МАКСИМУМ(Календарь1.Дата) = Календарь2.Дата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	врРабДни.НаДату
ИЗ
	врРабДни КАК врРабДни
ГДЕ
	врРабДни.РабочихДней = &Срок + 1"},
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663,
{8,
{3,
{0,"ИмяПараметра",
{"Pattern",
{"S",100,1}
},"Имя параметра",22},
{1,"ЭтоВыражение",
{"Pattern"},"В",9},
{2,"ЗначениеПараметра",
{"Pattern",
{"#",280f5f0e-9c8a-49cc-bf6d-4d296cc17a63},
{"#",4772b3b4-f4a3-49c0-a1a5-8cb5961511a3},
{"#",5a49abd5-936d-4f46-8499-9cb204efe378},
{"B"},
{"S",100,1},
{"D"},
{"N",15,3,0}
},"Значение параметра",22}
},
{2,3,0,0,1,1,2,2,
{1,2,
{2,0,3,
{"S","ДатаНач"},
{"B",0},
{"D",20130415000000},0},
{2,1,3,
{"S","Срок"},
{"B",0},
{"N",5},0}
},-1,1}
}
},
{"N",1},
{"U"},0}
},7,0}
}
}
Показать
23. DoctorRoza 13.06.13 10:48 Сейчас в теме
Открываю обработку, как внешнюю, в УПП 1.2.21.1. Ошибки:

{Форма.ОсновнаяФорма.Форма(652,63)}: Недостаточно фактических параметров (ПолучитьВременнуюТаблицу)
Для каждого Строка Из ВременныеТаблицы Цикл Строка.Данные = <<?>>ПолучитьВременнуюТаблицу(Строка.ИмяТаблицы) КонецЦикла;
{Форма.ОсновнаяФорма.Форма(1115,9)}: Процедура или функция с указанным именем уже определена (ПолучитьВременнуюТаблицу)
Функция <<?>>ПолучитьВременнуюТаблицу(ИмяТаблицы)
{Форма.ОсновнаяФорма.Форма(1134,9)}: Недостаточно фактических параметров (ПолучитьВременнуюТаблицу)
Рез = <<?>>ПолучитьВременнуюТаблицу(СокрЛП(Сред(ТипОтв, 2)));
{Форма.ОсновнаяФорма.Форма(1243,20)}: Недостаточно фактических параметров (ПолучитьВременнуюТаблицу)
НовСтр.Данные = <<?>>ПолучитьВременнуюТаблицу(ИмяВТ);
{Форма.ОсновнаяФорма.Форма(1361,21)}: Недостаточно фактических параметров (ПолучитьВременнуюТаблицу)
НовСтр.Данные = <<?>>ПолучитьВременнуюТаблицу(ИмяВТ);
24. tormozit 7136 13.06.13 12:37 Сейчас в теме
Функция "Разложить вложенный запрос в пакетный" (ноухау)
...
Это довольно интересная функция - нигде такого не встречал.

Кто не хочет видеть, тот не видит =) В консоли запросов из подсистемы "Инструменты разработчика" это уже давно есть. В описании есть такая функция "Вынести в новый запрос" и даже на картинке видно http://devtool1c.ucoz.ru/index/konsol_zaprosov/0-18
IgorXml; iov; Chif13; ikekoval; ivanov660; +5 Ответить
25. DrAku1a 1679 13.06.13 13:28 Сейчас в теме
(24) Функция похожа, но не такая-же... При нажатии "Разложить вложенный запрос в пакетный" происходит преобразование всего запроса, причем таким образом, что результат выполнения не меняется, меняется только структура...
ИР, несомненно, Вещь полезная!, но там встраивать подсистему, регистрировать ВК... Есть мобильная версия - но ее, например, во "Внешние обработки" не запихнешь... Да и DLL-ки и там надобно регистрировать...
26. tormozit 7136 13.06.13 13:45 Сейчас в теме
(25) А зачем весь запрос то преобразовывать? Это часто будет приводить к снижению наглядности запроса без выигрыша по производительности. У меня функция сделана именно для точечного рефакторинга.
Мой пост касался в основном формулировки НоуХау. Хотел указать, что термин НОУХАУ здесь применять некорректно.

Кстати обратная функция реально думаю будет невостребована. Можешь ее удалять, чтобы не отвечать постоянно на вопрос "А зачем она?".
Evg-Lylyk; +1 Ответить
27. MonteCriZto 112 14.06.13 07:12 Сейчас в теме
Андрюха молодец, жду тебя в выборе экспертов :)
28. lamelioss 143 14.06.13 12:55 Сейчас в теме
бодро написано ))) взлетела даже на кастомной конфигурации =)))
29. KovalOleg 33 14.06.13 15:22 Сейчас в теме
Спасибо, посмотрим)))
надеюсь поможет в борьбе с ЗУПом))
30. ixijixi 1775 14.06.13 16:25 Сейчас в теме
Выглядит круто, буду пробовать
31. zamaraev_ev 15.06.13 09:57 Сейчас в теме
Очень нужная и полезная обработка, из разряда must have.
32. Progerok 97 15.06.13 12:00 Сейчас в теме
Спасибо! Хорошая обработка, а главное полезная
33. AnryMc 849 15.06.13 13:50 Сейчас в теме
Есть подозрение, что при преобразовании вложенный <=> пакет вываливается в даун, при наличии в тексте {...}
34. sergiobargio1 118 17.06.13 16:13 Сейчас в теме
Добрый день, проконсультируйте чайника, пожалуйста: пробую прицепить Вашу доп.обработку, выпадает сообщение:
"...
{Справочник.ВнешниеОбработки.Форма.ФормаЭлемента.Форма(178)}: Ошибка при вызове метода контекста (Создать): {ВнешняяОбработка.ОтладчикЗапросов.МодульОбъекта(841,9)}: Процедура или функция с указанным именем уже определена (ЛксПолучитьТекущееВремяВМиллисекундах): {ВнешняяОбработка.ОтладчикЗапросов.МодульОбъекта(841,9)}: Процедура или функция с указанным именем уже определена (ЛксПолучитьТекущееВремяВМиллисекундах)
..."
Что посоветуете? Спасибо.
35. STivO 60 17.06.13 18:13 Сейчас в теме
К сожалению не получилось запустить из-за ошибки "Процедура или функция с указанным именем уже определена"((
Может есть смысл переименовать процедуры/функции типа: СообщитьОбОшибке, ПустоеЗначениеТипа и т.п. добавлением префикса к ним?
36. DrAku1a 1679 17.06.13 18:17 Сейчас в теме
Сделаю, но немного позже... Сейчас реально нету времени... =(
37. Aleksey81 1177 17.06.13 20:15 Сейчас в теме
Спасибо большое за такой удобный инструмент. Просто здорово! Единственно, что смутило отсутствие большой красной кнопки с надписью ""Открыть из отладчика". Одна из ценнейших функций. Кстати ее реализация удивила простотой и удобством. Низкий поклон за надпись в строке сообщений, которую остается только скопировать через буфер.
38. Starik 111 18.06.13 13:27 Сейчас в теме
Круто, понравилось! Познавательно очень! Если выполнить пожелания в комментариях выше то вообще бесценно!
39. ixijixi 1775 18.06.13 14:26 Сейчас в теме
Отличная вещь! Теперь буду на ней сидеть)
40. DmitryKishkin 21.06.13 09:54 Сейчас в теме
Обработка гениальна. Правда, столкнулся с одним маленьким багом - при выполнении "Разложить запрос" она "забыла" поставить ";" после запроса, создающего вт. К сожалению, пример привести не могу - был сложный запрос на самописной конфигурации. Мелочь, конечно, просто автору может быть полезно.
41. okref 21.06.13 10:31 Сейчас в теме
Отличная штука! Очень надеюсь что и дальше будет расти и крепнуть.
Описание сделано красиво, только вот в самом конце:

"Для снятия скриншотов (для данной статьи) - использовал ,tcgkfnye. b elj,ye. утилиту "PicPick"."

неакуратненько
42. koladen 17 24.06.13 21:27 Сейчас в теме
43. sergb1979 26.06.13 09:42 Сейчас в теме
Больше всего нелюблю ЗУП запросы разбирать, но утилита реально помогла
44. Збянтэжаны Саўка 245 26.06.13 13:05 Сейчас в теме
(0)
у параметров запроса как установить тип Граница, а не просто Дата?
45. internetname 27.06.13 18:16 Сейчас в теме
46. AnryMc 849 27.06.13 23:22 Сейчас в теме
(45) internetname,
Ещё один телепат - не скачав файла - выводы ...

Похвалил - $m получил, а автору даже "+" не поставил...
51. internetname 30.06.13 10:53 Сейчас в теме
(46) AnryMc,
Необязательно скачивать программу, чтобы оценить
ее ценность. А насчет плюса исправился.
47. DrAku1a 1679 28.06.13 10:28 Сейчас в теме
Документация:

Описание функционала: /* в разработке */
https://docs.google.com/document/d/1SDv8zf72kCE5NV-UfjXCwc2VNzv38Yaq6Zsv8REWKCs/edit?usp=sharing

ЧаВо (вопрос-ответ): /* в разработке */
https://docs.google.com/document/d/1-uJ_divaGrTqAthdP5UEf8_8mMmVI2iqSpJt_lXXs64/edit?usp=sharing

Общие планы по развитию:
https://docs.google.com/document/d/1ffZzSwZeJtAJ_MsNGGIlr_2TdC1kh0VzgqFks3d_l9o/­edit?usp=sharing

Перечень обнаруженных ошибок и пожеланий (к исправлению):
https://docs.google.com/document/d/14y6ouHb8hH1QW-0K1buZQPpurhCLrYc6qv33GEQO7XA/edit?usp=sharing

Перечень исправленных ошибок:
https://docs.google.com/document/d/14y6ouHb8hH1QW-0K1buZQPpurhCLrYc6qv33GEQO7XA/edit?usp=sharing

По поводу управляемых форм и расширения функционала анализа - нужно исследовать и разработать полноценный парсер текста запроса на языке 1С, наподобие ИР GoldParser + грамматика языка запросов 1С. (задача очень тяжелая, но полагаю - реализуемая). Тогда можно будет и полноценный конструктор запросов реализовать.
52. AnryMc 849 30.06.13 12:29 Сейчас в теме
(47)

ЧаВо (вопрос-ответ): /* в разработке */
https://docs.google.com/document/d/1-uJ_divaGrTqAthdP5UEf8_8mMmVI2iqSpJt_lXXs64/edit?usp=sharing


Приведена ссылка без авторизации Гугла...
53. DrAku1a 1679 30.06.13 13:25 Сейчас в теме
(52) AnryMc, доступ открыл. Но там пока что по-прежнему пусто.
55. CratosX 112 01.07.13 18:30 Сейчас в теме
(47) правильно ли я понимаю, что "Перечень исправленных ошибок" содержит описание изменений в обработке? (так как хочется знать, насколько важные изменения, чтобы решить - качать или нет)
48. DrAku1a 1679 28.06.13 10:30 Сейчас в теме
49. DoctorRoza 28.06.13 14:29 Сейчас в теме
Ждем обновления, разработка нужная! :)
50. ljolsen 28.06.13 16:50 Сейчас в теме
все тугрики потратила...Вот досада...Накоплю и обязательно качну. Но авторам все равно + большой
54. Kov495 11 01.07.13 16:52 Сейчас в теме
Все хорошо, но эта обработка держит захваченными объекты выборки! Проверяли по консоли кластеров.
56. DrAku1a 1679 02.07.13 02:55 Сейчас в теме
(54) Хм... Полагаю, это потому, что не уничтожается менеджер временных таблиц (он остается, чтобы можно было просмотреть эти самые ВТ)... Предложите вариант как от этого избавиться?

(55) Правильно понимаете. Только перечень этот пополняется до обновления. Впредь буду указывать номер сборки.
57. WhiteOwl 429 02.07.13 15:32 Сейчас в теме
Нереально круто! Очень помогло при преобразовании зубодробительного вложенного запроса в пакетный. Успехов автору!
58. SinglCOOLer 217 03.07.13 15:37 Сейчас в теме
удобно круто, понравилось
59. prodines 107 04.07.13 13:24 Сейчас в теме
При отладке запрос формируется пустым. Хотя на самом деле это не так.
60. DrAku1a 1679 04.07.13 13:45 Сейчас в теме
61. prodines 107 04.07.13 15:17 Сейчас в теме
(60) Пакетный запрос с вложенными запросами и внутренними таблицами. Сборка 1082.

рез = Запрос.Выполнить();

рез.Выгрузить().ВыбратьСтроку(); // вот так можно увидеть результат запроса

ВнешниеОбработки.Создать("C:\1С\Отладчик_запросов.epf").ОткрытьДляОтладки(Запрос); // а вот так получаем пустой результат запроса. Жму кнопку "Выполнить" - всё равно пустой результат. Жму Анализ - Просмотр вложенных запросов, получаю ошибку:

{Форма.ОсновнаяФорма.Форма(1850)}: Значение не является значением объектного типа (Текст)
тТекущийЗапрос = СокрЛП(глЗапрос.Текст);


На простейшем запросе в другом месте всё работает. А тут - нет. И "Запросник" - то же самое.

Чем же смотреть навороченные пакетные запросы?

Запрос находится в функции "ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ДополнительныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего);" ЗУП 2.5.68.1, он один там. Вызывается из документа "Расчет при увольнении сотрудника организации" когда на вкладке "Расчет среднего заработка" нажимаешь кнопку "Рассчитать".
62. DrAku1a 1679 04.07.13 16:20 Сейчас в теме
(61) Посмотрите пожалуйста какого типа переменная Запрос.
установите точку останова, shift+f9, вычислите
ТипЗнч(Запрос)

далее вычислить:
Запрос.Текст
63. prodines 107 04.07.13 16:28 Сейчас в теме
(62)

ТипЗнч(Запрос) = "Запрос".

ТипЗнч(Запрос.Текст) = "Строка".

Текст запроса во вложении к посту.
Прикрепленные файлы:
запрос 29,4 (2).txt
64. DrAku1a 1679 04.07.13 16:42 Сейчас в теме
(63) хм... странное поведение... еще одно предположение сделаю - может включен режим раскраски текста запроса. попробуйте выключить его, после чего закрыть форму и снова открыть запрос из отладчика...
65. prodines 107 05.07.13 09:04 Сейчас в теме
(64)
Кстати, обычная консоль запросов (8.1) показывает этот запрос.
66. Kamikadze 46 05.07.13 11:03 Сейчас в теме
Нет возможности добавлять в параметры список значень. НО..... изменив тип - все работает :)
67. SmokeAce 05.07.13 15:21 Сейчас в теме
Отличная работа! Действительно полезный инструмент! Удачи в усовершенствовании.
68. Chernik 05.07.13 21:04 Сейчас в теме
Появление таких инструментов всегда радует. Автору спасибо
69. SinglCOOLer 217 08.07.13 08:42 Сейчас в теме
не удобно без быстрого выбора "в списке значений" в параметрах
72. DrAku1a 1679 08.07.13 10:18 Сейчас в теме
(69) без чего?
(70) рассмотрим
(71) не понял... такое иногда бывает у меня, когда не фиксируется изменение текста запроса - делаю так: в конец текста запроса руками добавляю пробел и перехожу на вкладку "Параметры". Тогда список параметров обновляется.

(69),(70), (71) Просьба не плодить лишние комментарии. Редактируйте свой один...
70. SinglCOOLer 217 08.07.13 08:44 Сейчас в теме
Когда выбираешь в параметрах "список значений", добавляешь значение в список, копируешь его начинаешь выбирать другое вылетает ошибка "не корректно задан тип значения"
71. SinglCOOLer 217 08.07.13 08:48 Сейчас в теме
Новые параметры не появляются в параметрах и не понятно как их добавить все не руками
73. SinglCOOLer 217 08.07.13 11:47 Сейчас в теме
по 69 - в обычной консоли запросов есть выбор типа значения где есть 3 вида: значение, выражение, список - это удобно т.к. это наиболее часто используется, у вас же надо выбирать из дерева то что нужно, не удобно

по 71 - я несколько раз открывал запрос конструктором, добавляя параметры и после закрытия конструктора новые параметры в списке параметров не появлялись, почему не сделать кнопку "заполнить" как в обычной консоли?

Еще момент, в параметрах в шапке есть период, не совсем понятно его назначение. У меня запрос у которого есть дата начала и дата окончания, соответственно я их заполняю в параметрах, но консоль мне упорно не хочет выдавать результат пока я этот самый период не заполню сверху. Какой смысл с двух периодов?
Kamikadze; +1 Ответить
74. DrAku1a 1679 08.07.13 14:26 Сейчас в теме
(73) Понял. Учту оба пожелания.
Еще момент, в параметрах в шапке есть период, не совсем понятно его назначение. У меня запрос у которого есть дата начала и дата окончания, соответственно я их заполняю в параметрах, но консоль мне упорно не хочет выдавать результат пока я этот самый период не заполню сверху. Какой смысл с двух периодов?

Этот период как раз заполняет Дату начала и Дату окончания (ДатаНач, НачПериода, ДатаНачала и аналогично для конечной даты). Смысл его по сути - только в кнопке выбора периода... Потому, из списка параметров и удаляются данные даты. Иногда бывает надо все-же отладить - я переименовываю в НачПериода1 например...
75. madonov 169 09.07.13 03:34 Сейчас в теме
Мне в наследство досталась не типовая база, многие запросы в которой даже чтению поддаются только после часов дешифровки. Поэтому для меня визуальная структура запроса - просто сказка.
А вот разложить первого же франкейнштейна в пакетный запрос не получилось - вложенные запросы не уходят, а от исходного текста запроса просто отрезается последний символ.
У меня 17 запросов в пакете, многие из них имеют вложенные запросы и это всего в 700 строках такая анархия... короче мрак...
Если автору обработки интересен текст запроса для анализа - готов выслать в ЛС.
76. SinglCOOLer 217 09.07.13 08:25 Сейчас в теме
Я тоже готов выслать свой запрос, с которым к сожалению мне было не удобно (наверно скорее не привычно) пользоваться данным инструментом. Не совсем еще понял логику пошагового выполнения запроса. С пакетными тоже не получалось. Не понравился еще тот момент, когда при переключении вкладок вся консоль задумывается (особенно когда нажимаешь на вкладку "Запрос"), видимо что то в момент переключения парсится. Еще момент, это фон текста запроса, он почему то у меня такой, как у элемента "только чтение" или доступность = ложь, а не белый и поэтому меня все время не покидает ощущение что я не могу править текст запроса.
77. break 33 09.07.13 08:26 Сейчас в теме
хотелось бы чтоб текст запроса раскрашивался
79. DrAku1a 1679 09.07.13 14:12 Сейчас в теме
(77) Посмотри в меню "Файл"
(76) При переключении запрос-параметры, они и парсятся. Насчет расцветки - ничего сказать не могу (в режиме пошагового выполнения текст запроса действительно не редактируется).
(78) Параметры обновляются при изменении текста запроса (т.е. если после выполнения вы что-то в тексте поменяли - то опять выбрасывает на параметры).
80. SinglCOOLer 217 09.07.13 14:24 Сейчас в теме
(79) по 76 получается цвет в какой то момент не возвращается
78 - хорошо пусть перекидывает, правда тоже большого смысла в этом не вижу. Он меня перекинул я на них посмотрел и нажимаю выполнить еще раз и ничего не происходит и так пока просто не провалишься в редактирование параметра (любого), в чем логика?
78. SinglCOOLer 217 09.07.13 12:22 Сейчас в теме
- При нажатии кнопки "открыть копию" в параметрах запроса очищаются периоды, те что в шапке формы
- Если находишься на вкладке "Запрос" и нажимаешь "Выполнить" почему то автоматически открывается вкладка параметры, результата нет, но количество записей показывает 9999999999999... Нажимаем еще раз "Выполнить" уже на параметрах раза с 3 появляется результат, закономерность пока не понял. Иногда с закладки "Запрос" все выполняется корректно.

P.S. в тот момент когда он меня упорно отправляет на вкладку параметры, вместо вывода результата, если просто зайти в режим редактирования на любой строке параметра и после этого нажать выполнить, все начинает выполняться.
81. sick_russian 10.07.13 02:24 Сейчас в теме
Отличная штука! А можете на почту выслать, если не трудно?
82. DrAku1a 1679 10.07.13 02:26 Сейчас в теме
Сегодня в рассылке попалась на глаза обработка:
Интерактивный анализатор больших и вложенных запросов "Парсер запросов"
Похоже мои "ноу-хау", все-же изобретение велосипеда... Будем изучать :)
94. adhocprog 1139 23.07.13 18:29 Сейчас в теме
(82) объединяй эту обработку со своей и взорвем российский ВВП )
83. sick_russian 10.07.13 09:33 Сейчас в теме
Заставил коллегу скачать) в последнее время постоянно приходится работать с запросами) очень понравился отладчик)
84. koladen 17 10.07.13 12:44 Сейчас в теме
Спасибо! Очень нужная вещь :)
85. TbSasha 13.07.13 06:04 Сейчас в теме
Нажимаю на кнопку "обработка результата" появляется код:

Для каждого СтрокаДанных из РезультатЗапроса Цикл
СтрокаДанных.Наименование // Строка, Null
КонецЦикла;


Нажимаю "выполнить" или "проверить код" выходит сообщение "{(3, 1)} : Неопознанный оператор" и выделяется "КонецЦикла" Почему так?
86. DrAku1a 1679 13.07.13 06:35 Сейчас в теме
(85) Тебе создан шаблон кода. Код не рабочий - его еще надо написать.
Например замени:
СтрокаДанных.Наименование // Строка, Null

на
Сообщить(СтрокаДанных.Наименование); // Строка, Null
87. SinglCOOLer 217 15.07.13 12:36 Сейчас в теме
Не хватает отбора в просмотре временных таблиц, если очень много записей то не всегда возможно найти то что нужно ctrl+f не всегда помогает
88. chmv 15.07.13 16:55 Сейчас в теме
89. higs 19.07.13 14:36 Сейчас в теме
Скачал, посмотрел, сделано интересно. Единственно, как уже говорили выше, не хватает дерева запросов, чтобы все тут в кучке было, а не раскидано по файликам.
Спасибо!!!
90. CratosX 112 22.07.13 18:22 Сейчас в теме
удалил: ошибся страницей
91. DrAku1a 1679 23.07.13 02:09 Сейчас в теме
(90) и как это связано с данной разработкой?
P.S. проблема прорисовки - вероятнее всего именно в терминале.
92. wbazil 138 23.07.13 14:27 Сейчас в теме
очень сильный инструмент, спасибо Вам большое
особенно порадовала возможность открывать запросы в отладке, проверил на маленьких запросах ОТЛИЧНО работает
решил сделать что то по больше в ЗУП есть форма Т-13 (табель), запрос там на несколько экранов (приведу в конце)
обработка отлично получила текст запроса, вытащила все параметры, НО при попытке выполнить выдала ошибку

{(813, 50)}: Поле не найдено "НеотфильтрованноеВремя.ПодразделениеОрганизации.Наименование"
НеотфильтрованноеВремя.ПодразделениеОрганизации.<<?>>Наименование КАК ИмяПодразделения,

собственно сам запрос прикрепил файлом а то он больше 64Кб
Прикрепленные файлы:
Запрос.txt
93. adhocprog 1139 23.07.13 18:27 Сейчас в теме
95. AlX0id 25.07.13 12:10 Сейчас в теме
отдельный плюс за автосохранение запросов ))
ток что вылетела 1с - удалось спасти почти все )
96. AlexanderKai 26.07.13 14:49 Сейчас в теме
Просто офигенный отладчик. Разложил немаленький запрос с вложенными запросами в пакетный и пробежался по результатам - все стало сразу ясно.
97. m_gin 46 07.08.13 09:41 Сейчас в теме
Один изпараметров Таблица значений. Загружаю его из табличного документа.
Числовых полей нет, строковые и датавремя. Обработка определила тип полей как "Строка, Число".
Меняю на нужный тип, но это изменение не сохраняется.
Из-за этого вот такая ошибка:

Неверные параметры "ПОДСТРОКА"
ПОДСТРОКА(<<?>>Таб.НомерЗаказа, 1, 7) КАК НомерЗаказа,

Таб.НомерЗаказа, видимо, воспринимается как число.

А вообще присоединяюсь к плюсующим, благодарящим и хвалящим. Автор - молодец!
98. DrAku1a 1679 07.08.13 10:35 Сейчас в теме
(97) Ну да... Загрузка из табличного документа довольно примитивна...
99. TbSasha 28.08.13 02:44 Сейчас в теме
А нельзя ли отключить чтоб постоянно не предлагало сохранить?
Anetkaaa; gucci76; +2 Ответить
Оставьте свое сообщение