IE 2016

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

Опубликовал DrAku1a в раздел Программирование - Инструментарий

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

пример:

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

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

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

пример:

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

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

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

ВЫБРАТЬ

  *

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

Обратите внимание на четвертую вкладку "Универсальный отчет (модуль)". На вкладке содержится заготовка модуля универсального отчета (http://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. Добавлен "Конструктор правила для экспресс-проверки ведения учета" (вызывается кнопкой на странице "Результат").

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

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

См. также

Лучшие комментарии

24. tormozit 13.06.2013 12:37
Функция "Разложить вложенный запрос в пакетный" (ноухау)
...
Это довольно интересная функция - нигде такого не встречал.

Кто не хочет видеть, тот не видит =) В консоли запросов из подсистемы "Инструменты разработчика" это уже давно есть. В описании есть такая функция "Вынести в новый запрос" и даже на картинке видно http://devtool1c.ucoz.ru/index/konsol_zaprosov/0-18
Ответили: (25)
# Ответить
99. TbSasha 28.08.2013 02:44
А нельзя ли отключить чтоб постоянно не предлагало сохранить?
Ответили: (102)
+ 2 [ Anetkaaa; gucci76; ]
# Ответить
10. _Ramzes (файл скачал) 12.06.2013 12:02
Плюс однозначно. Но есть вопрос. Для чего используются возможности пакетный во вложенный? Это просто показ возможности, что типа такое есть? А в остальном, меняю обработку Запросник82 на вашу, теперь буду ей пользоваться.
Из пожеланий, было бы хорошо реализовать анализ индексов во временных таблицах.
Чтобы к примеру есть 20 ВременныхТаблиц, и чтобы обработка анализировала по каким полям идет отбор или соединение и говорила что в виртуальной таблице Такой-то было бы хорошо врубить индексирование по полю Такое-то.
Ах ну и было бы однозначно здорово начать переделывать под управляемое приложение тонкий клиент. На данный момент не знаю не одного стоящего (не хуже Запросник82) консоли запросов под управляемое приложение.
Ответили: (13)
+ 2 [ kostyaomsk; CratosX; ]
# Ответить
118. DrAku1a 06.07.2014 01:55
(117) Да. Просто продолжить и запрос для отладки открывается именно в режиме "Предприятие".
Полагаю, Вы уже увидели ответ когда продолжили выполнение.
Ответили: (121)
+ 2 [ kostyaomsk; eruil; ]
# Ответить
122. DrAku1a 13.11.2014 02:19
(121)
В запарке если вызвать диалог "автосохранение" с кол. секунд "0" то ошибка периода исполнения
здесь немного иной смысл - автосохранение делается только перед выполнением текста запроса.
Думал, уже конфигурацию подкрутить. Флажок то разрешающий использование обычных форм в управляемом приложении установлен, но
Понимаю неудобство, сам сталкивался, но пока что нет версии под УФ (руки не доходят)... Сам же выкручивался так: сделал отдельного пользователя, у которого указал режим запуска - обычное приложение. Под ним захожу и разрабатываю с запрос в отладчике. Но при этом, нет возможности открыть запрос в отладчике "на лету".
не рекомендуется собирать пакетный в составной
в первых комментариях к публикации - народ высказывался по этому поводу.
Как я понимаю, когда делается соединение двух источников данных, оптимальнее, чтобы источники данных - были во временных таблицах (их даже можно проиндексировать - что ускорит соединение), а когда делается просто выборка из выборки - лучше использовать вложенные запросы. Но, полагаю, во втором случае - прирост производительности большим не будет.
Общие рекомендации по ускорению запросов
Здесь дается некоторое объяснение
Тут тоже, см. пункт 8
Обсуждение "Вложенный запрос или временная таблица?"
Что быстрее выполняется: вложенные запросы или временные таблицы в запросах?
Ответили: (123)
+ 1 [ kostyaomsk; ]
# Ответить

Комментарии

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

Успехов и дальнейшего развития! :) И с праздником!
Ответили: (13)
# Ответить
9. ivanov660 12.06.2013 11:47
Функцию из пакетного запроса в вложенный запрос можно смело удалять. Как сами 1с-ки советуют не использовать вложенные запросы.
Так молодца :-)
Ответили: (13)
# Ответить
10. _Ramzes (файл скачал) 12.06.2013 12:02
Плюс однозначно. Но есть вопрос. Для чего используются возможности пакетный во вложенный? Это просто показ возможности, что типа такое есть? А в остальном, меняю обработку Запросник82 на вашу, теперь буду ей пользоваться.
Из пожеланий, было бы хорошо реализовать анализ индексов во временных таблицах.
Чтобы к примеру есть 20 ВременныхТаблиц, и чтобы обработка анализировала по каким полям идет отбор или соединение и говорила что в виртуальной таблице Такой-то было бы хорошо врубить индексирование по полю Такое-то.
Ах ну и было бы однозначно здорово начать переделывать под управляемое приложение тонкий клиент. На данный момент не знаю не одного стоящего (не хуже Запросник82) консоли запросов под управляемое приложение.
Ответили: (13)
+ 2 [ kostyaomsk; CratosX; ]
# Ответить
11. 1cmax (файл скачал) 12.06.2013 13:21
Мега круто, понравились макеты кода запроса.
Вот если бы еще можно было выпилить из типовой 10.3 модуль отчета, распарсить
и визуальными настройками как в вашей обработке настроить отчет под себя
а то допиливание отчетов на основе универсального отчета в 10.3 не сахар.
Ответили: (13)
# Ответить
12. glek (файл скачал) 12.06.2013 14:04
Сума сойти. Однозначно плюс
# Ответить
13. DrAku1a 12.06.2013 15:17
(9),(10) Да. Функция сделана чтобы показать что и обратно собирать запросы возможно. Кстати, она довольно забавно себя ведет когда одна и та-же ВТ в запросе используется дважды-трижды... Но убирать не буду - только помечу в описании "не рекомендуется использовать".

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

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

(4),(8),(10) и тем, кто писал в личку - СПАСИБО! Все Ваши пожелания и идеи приняты.
# Ответить
14. Владимир 13.06.2013 04:20
Очень полезная разработка, спасибо!

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

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

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

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

Кстати обратная функция реально думаю будет невостребована. Можешь ее удалять, чтобы не отвечать постоянно на вопрос "А зачем она?".
# Ответить
27. Montecrizto (файл скачал) 14.06.2013 07:12
Андрюха молодец, жду тебя в выборе экспертов :)
# Ответить
28. lamelioss 14.06.2013 12:55
бодро написано ))) взлетела даже на кастомной конфигурации =)))
# Ответить
29. KovalOleg (файл скачал) 14.06.2013 15:22
Спасибо, посмотрим)))
надеюсь поможет в борьбе с ЗУПом))
# Ответить
30. the1 (файл скачал) 14.06.2013 16:25
Выглядит круто, буду пробовать
# Ответить
31. fishmemory 15.06.2013 09:57
Очень нужная и полезная обработка, из разряда must have.
# Ответить
32. Progerok 15.06.2013 12:00
Спасибо! Хорошая обработка, а главное полезная
# Ответить
33. AnryMc (файл скачал) 15.06.2013 13:50
Есть подозрение, что при преобразовании вложенный <=> пакет вываливается в даун, при наличии в тексте {...}
# Ответить
34. sergiobargio1 (файл скачал) 17.06.2013 16:13
Добрый день, проконсультируйте чайника, пожалуйста: пробую прицепить Вашу доп.обработку, выпадает сообщение:
"...
{Справочник.ВнешниеОбработки.Форма.ФормаЭлемента.Форма(178)}: Ошибка при вызове метода контекста (Создать): {ВнешняяОбработка.ОтладчикЗапросов.МодульОбъекта(841,9)}: Процедура или функция с указанным именем уже определена (ЛксПолучитьТекущееВремяВМиллисекундах): {ВнешняяОбработка.ОтладчикЗапросов.МодульОбъекта(841,9)}: Процедура или функция с указанным именем уже определена (ЛксПолучитьТекущееВремяВМиллисекундах)
..."
Что посоветуете? Спасибо.
# Ответить
35. STivO (файл скачал) 17.06.2013 18:13
К сожалению не получилось запустить из-за ошибки "Процедура или функция с указанным именем уже определена"((
Может есть смысл переименовать процедуры/функции типа: СообщитьОбОшибке, ПустоеЗначениеТипа и т.п. добавлением префикса к ним?
# Ответить
36. DrAku1a 17.06.2013 18:17
Сделаю, но немного позже... Сейчас реально нету времени... =(
# Ответить
37. Aleksey81 (файл скачал) 17.06.2013 20:15
Спасибо большое за такой удобный инструмент. Просто здорово! Единственно, что смутило отсутствие большой красной кнопки с надписью ""Открыть из отладчика". Одна из ценнейших функций. Кстати ее реализация удивила простотой и удобством. Низкий поклон за надпись в строке сообщений, которую остается только скопировать через буфер.
# Ответить
38. Starik (файл скачал) 18.06.2013 13:27
Круто, понравилось! Познавательно очень! Если выполнить пожелания в комментариях выше то вообще бесценно!
# Ответить
39. the1 (файл скачал) 18.06.2013 14:26
Отличная вещь! Теперь буду на ней сидеть)
# Ответить
40. DmitryKishkin (файл скачал) 21.06.2013 09:54
Обработка гениальна. Правда, столкнулся с одним маленьким багом - при выполнении "Разложить запрос" она "забыла" поставить ";" после запроса, создающего вт. К сожалению, пример привести не могу - был сложный запрос на самописной конфигурации. Мелочь, конечно, просто автору может быть полезно.
# Ответить
41. okref 21.06.2013 10:31
Отличная штука! Очень надеюсь что и дальше будет расти и крепнуть.
Описание сделано красиво, только вот в самом конце:

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

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

Похвалил - $m получил, а автору даже "+" не поставил...
Ответили: (51)
# Ответить
47. DrAku1a 28.06.2013 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) (55)
# Ответить
48. DrAku1a 28.06.2013 10:30
Сабж
# Ответить
49. DoctorRoza (файл скачал) 28.06.2013 14:29
Ждем обновления, разработка нужная! :)
# Ответить
50. ljolsen 28.06.2013 16:50
все тугрики потратила...Вот досада...Накоплю и обязательно качну. Но авторам все равно + большой
# Ответить
51. internetname 30.06.2013 10:53
(46) AnryMc,
Необязательно скачивать программу, чтобы оценить
ее ценность. А насчет плюса исправился.
# Ответить
52. AnryMc (файл скачал) 30.06.2013 12:29
(47) DrAku1a,

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


Приведена ссылка без авторизации Гугла...
Ответили: (53)
# Ответить
53. DrAku1a 30.06.2013 13:25
(52) AnryMc, доступ открыл. Но там пока что по-прежнему пусто.
# Ответить
54. Kov495 01.07.2013 16:52
Все хорошо, но эта обработка держит захваченными объекты выборки! Проверяли по консоли кластеров.
Ответили: (56)
# Ответить
55. CratosX (файл скачал) 01.07.2013 18:30
(47) правильно ли я понимаю, что "Перечень исправленных ошибок" содержит описание изменений в обработке? (так как хочется знать, насколько важные изменения, чтобы решить - качать или нет)
Ответили: (56)
# Ответить
56. DrAku1a 02.07.2013 02:55
(54) Хм... Полагаю, это потому, что не уничтожается менеджер временных таблиц (он остается, чтобы можно было просмотреть эти самые ВТ)... Предложите вариант как от этого избавиться?

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

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

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

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

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


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

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

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

далее вычислить:
Запрос.Текст
Ответили: (63)
# Ответить
63. prodines (файл скачал) 04.07.2013 16:28
(62) DrAku1a,

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

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

Текст запроса во вложении к посту.
Ответили: (64)

Прикрепленные файлы:

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

(69),(70), (71) Просьба не плодить лишние комментарии. Редактируйте свой один...
# Ответить
73. SinglCOOLer (файл скачал) 08.07.2013 11:47
по 69 - в обычной консоли запросов есть выбор типа значения где есть 3 вида: значение, выражение, список - это удобно т.к. это наиболее часто используется, у вас же надо выбирать из дерева то что нужно, не удобно

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

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

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

P.S. в тот момент когда он меня упорно отправляет на вкладку параметры, вместо вывода результата, если просто зайти в режим редактирования на любой строке параметра и после этого нажать выполнить, все начинает выполняться.
Ответили: (79)
# Ответить
79. DrAku1a 09.07.2013 14:12
(77) Посмотри в меню "Файл"
(76) При переключении запрос-параметры, они и парсятся. Насчет расцветки - ничего сказать не могу (в режиме пошагового выполнения текст запроса действительно не редактируется).
(78) Параметры обновляются при изменении текста запроса (т.е. если после выполнения вы что-то в тексте поменяли - то опять выбрасывает на параметры).
Ответили: (80)
# Ответить
80. SinglCOOLer (файл скачал) 09.07.2013 14:24
(79) DrAku1a, по 76 получается цвет в какой то момент не возвращается
78 - хорошо пусть перекидывает, правда тоже большого смысла в этом не вижу. Он меня перекинул я на них посмотрел и нажимаю выполнить еще раз и ничего не происходит и так пока просто не провалишься в редактирование параметра (любого), в чем логика?
# Ответить
81. sick_russian (файл скачал) 10.07.2013 02:24
Отличная штука! А можете на почту выслать, если не трудно?
# Ответить
82. DrAku1a 10.07.2013 02:26
Сегодня в рассылке попалась на глаза обработка:
Интерактивный анализатор больших и вложенных запросов "Парсер запросов"
Похоже мои "ноу-хау", все-же изобретение велосипеда... Будем изучать :)
Ответили: (94)
# Ответить
83. sick_russian (файл скачал) 10.07.2013 09:33
Заставил коллегу скачать) в последнее время постоянно приходится работать с запросами) очень понравился отладчик)
# Ответить
84. koladen (файл скачал) 10.07.2013 12:44
Спасибо! Очень нужная вещь :)
# Ответить
85. TbSasha 13.07.2013 06:04
Нажимаю на кнопку "обработка результата" появляется код:

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


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

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

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

собственно сам запрос прикрепил файлом а то он больше 64Кб

Прикрепленные файлы:

Запрос.txt
# Ответить
93. adhocprog (файл скачал) 23.07.2013 18:27
Мощно )
# Ответить
94. adhocprog (файл скачал) 23.07.2013 18:29
(82) объединяй эту обработку со своей и взорвем российский ВВП )
# Ответить
95. AlX0id (файл скачал) 25.07.2013 12:10
отдельный плюс за автосохранение запросов ))
ток что вылетела 1с - удалось спасти почти все )
# Ответить
96. AlexanderKai (файл скачал) 26.07.2013 14:49
Просто офигенный отладчик. Разложил немаленький запрос с вложенными запросами в пакетный и пробежался по результатам - все стало сразу ясно.
# Ответить
97. _qqq (файл скачал) 07.08.2013 09:41
Один изпараметров Таблица значений. Загружаю его из табличного документа.
Числовых полей нет, строковые и датавремя. Обработка определила тип полей как "Строка, Число".
Меняю на нужный тип, но это изменение не сохраняется.
Из-за этого вот такая ошибка:

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

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

А вообще присоединяюсь к плюсующим, благодарящим и хвалящим. Автор - молодец!
Ответили: (98)
# Ответить
98. DrAku1a 07.08.2013 10:35
(97) Ну да... Загрузка из табличного документа довольно примитивна...
# Ответить
99. TbSasha 28.08.2013 02:44
А нельзя ли отключить чтоб постоянно не предлагало сохранить?
Ответили: (102)
+ 2 [ Anetkaaa; gucci76; ]
# Ответить
100. chev 03.10.2013 11:09
А мне понравился.
# Ответить
101. irreal 01.11.2013 21:36
:) Любому sql-щику не сидится на штатных средствах. Я тоже занимался отладкой во время исполнения, http://infostart.ru/public/88028/. Но до парсинга не дошел, теории игр и компиляторов не знаю, а писать итуитивно, как напишется, т.е. без системы - не хотел.
Вообще меня бесят несколько моментов в 1С. Например, что из-за функции Выполнить() нельзя сделать метод Выполнить() у обработки, что позволило бы полноценно "подкладывать" обработку вместо запроса. Или тот же конструктор запросов - ведь на самом деле полноценный парсер. Почему скрыто его API? Жалко им видно, так что и свои разработчики сидят и косячат в типовых, не имея нормальных средств.
Ответили: (110)
# Ответить
102. DrAku1a 02.11.2013 03:49
(99) Снять флажок "Файл -> Автосохранение"
# Ответить
103. Andreynikus (файл скачал) 26.12.2013 16:17
Еще бы возможность просмотра плана запросов сюда включить, цены бы этой обработки не было!

Автору спасибо, обработка отличная!
Ответили: (104)
# Ответить
104. tormozit 27.12.2013 08:24
105. Andreynikus (файл скачал) 27.12.2013 10:02
(104) tormozit, да, только лучше бы получать план не через ТЖ, а через трассироку например.
Включать ТЖ на полный сбор запросов в большой системе не есть хорошо.
Ответили: (106)
# Ответить
106. tormozit 27.12.2013 17:16
(105) В ролике видно, что по умолчанию включается трассировка запросов в текущей базе по текущему пользователю.
Ответили: (107)
# Ответить
107. Andreynikus (файл скачал) 27.12.2013 19:17
(106) tormozit,
Тогда да, то что нужно!
# Ответить
108. mr.Kot 30.12.2013 10:06
Интересная обработка. Помимо стандартной консоли пользовался запросником82, он был со своими, оказавшимися нужными, фичами. А данная обработка с более богатым функционалом.
# Ответить
109. bayce 24.01.2014 20:16
хорошая вещь
# Ответить
110. kote (файл скачал) 28.01.2014 22:29
(101) Очень хорошо.. но, блин, когда до 1С и Нургалиева дойдет, что хотя бы API к конфигуратору нужно открыть.. терять бы ничего не потеряли, а приобрели очень многое - забесплатно.. да одно увеличение продуктивности 1С специалистов на несколько % за счет сторонних инструментов - повысило бы капитализацию бренда 1С.
# Ответить
111. pavel_pss 10.02.2014 10:04
интересная разработка. пригодится. спасибо.
# Ответить
112. Odinsov (файл скачал) 02.04.2014 13:20
Спасибо,пригодилось.
# Ответить
113. rasswet 22.04.2014 14:31
под управляемые формы нет варианта?
Ответили: (114)
# Ответить
114. DrAku1a 22.04.2014 15:13
(113) такого же мощного нет. но на ИС полно других...
# Ответить
115. yuraskas (файл скачал) 03.06.2014 11:46
Супер обработка. Порадовала работа с пакетными запросами. Пока что одно небольшое пожелание: при выводе кода запроса для "копирования к себе", параметры выводились бы кот. были использованы, как в стандартных консолях сделано. Т.е. дать выбор, выводить так: Запрос.УстановитьПараметр("ВидСубконтоОС", ВидСубконтоОС); или так: Запрос.УстановитьПараметр("ВидСубконтоОС", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства);
# Ответить
116. yuraskas (файл скачал) 20.06.2014 14:11
+ Колонка "СЗ" (флажок) - при установке данного флажка - параметр будет представлять из себя список значений, а тип в колонке "Тип значения" будет использован в редакторе списка значений - как тип по-умолчанию; - не работает. Хотел добавить несколько элементов групп справочника, после подбора нажимаю ОК - СЗ пустой!.
Ответили: (127) (151)
# Ответить
117. eruil (файл скачал) 05.07.2014 17:45
Вопрос по Функции "Открыть из отладчика".
Выполнил выражение ВнешниеОбработки.Создать("...\Отладчик запросов (by Акулов А.С.).epf").ОткрытьДляОтладки(Запрос)
Получил значение "Запрос открыт для отладки"
Что дальше? Просто продолжить выполнение основной программы после останова и Отладчик запросов запустится автоматически уже с нужными параметрами?
Ответили: (118)
# Ответить
118. DrAku1a 06.07.2014 01:55
(117) Да. Просто продолжить и запрос для отладки открывается именно в режиме "Предприятие".
Полагаю, Вы уже увидели ответ когда продолжили выполнение.
Ответили: (121)
+ 2 [ kostyaomsk; eruil; ]
# Ответить
119. artly2000 14.07.2014 04:17
Спасибо за обработку! (Совершенству нет предела)
# Ответить
120. BCA 23.07.2014 14:54
Спасибо!
"Разложить вложенный запрос в пакетный" - думал, вручную придется запрос перелопатить).
# Ответить
121. kostyaomsk (файл скачал) 12.11.2014 18:42
(118) DrAku1a, очень хорошая консоль. Даже в конфигуратор заглянул для просмотра возможностей. Очень понравилась возможность "парсить" вложенные запросы. Современные запросы уже "десятиэтажны".
А насчет основных возможностей для консолей запросов обычно очень надо бывает две вещи:
1. просмотр временных таблиц:
2. разложить вложенный запрос;
3. отладка из кода в процессе выполнения.
4. иногда даже dbf приходится подгружать.
В общем: для толстого клиента для проверок на лету и экстренного поиска ошибок и для серьезной долгой разработки с отладкой.
Одно плохо :( ОЧЕНЬ НАДЕЯЛСЯ что запустится в режиме "тонкий клиент". Какие-то процедуры с комментарием в коде "для тонкого" имеются.
Думал, уже конфигурацию подкрутить. Флажок то разрешающий использование обычных форм в управляемом приложении установлен, но, консоль уже вижу по отзывам не для тонкого клиента. Опять чем попало приходится пользоваться.
Пишите, что даже автосохранение не нужно устанавливать. Есть такая во всех консолях плохая вещь, от которого, надеюсь данная избавлена. В запарке если вызвать диалог "автосохранение" с кол. секунд "0" то ошибка периода исполнения
Еще интересное предупреждение "не рекомендуется собирать пакетный в составной". Для наглядности и отладки - да, согласен. Но вот для оптимизации выполнения не согласен. Во всяком случае так доказывают специалисты-оптимизаторы запросов, что вложенный быстрее чем во временных таблицах (SQL сервер файл TempDB на жестком диске).
Ответили: (122)

Прикрепленные файлы:

УТ 11.1.9 на поддержке. Свойства конфигурации - разрешено использование обычных форм в управляемом приложении.jpg
Консоль запросов - кнопка с предупреждением Не рекомендуется собирать пакетный запрос в составной.jpg
ТО что глючно во всех консолях при сохранении нуля. форма настройки автосохранения.jpg
# Ответить
122. DrAku1a 13.11.2014 02:19
(121)
В запарке если вызвать диалог "автосохранение" с кол. секунд "0" то ошибка периода исполнения
здесь немного иной смысл - автосохранение делается только перед выполнением текста запроса.
Думал, уже конфигурацию подкрутить. Флажок то разрешающий использование обычных форм в управляемом приложении установлен, но
Понимаю неудобство, сам сталкивался, но пока что нет версии под УФ (руки не доходят)... Сам же выкручивался так: сделал отдельного пользователя, у которого указал режим запуска - обычное приложение. Под ним захожу и разрабатываю с запрос в отладчике. Но при этом, нет возможности открыть запрос в отладчике "на лету".
не рекомендуется собирать пакетный в составной
в первых комментариях к публикации - народ высказывался по этому поводу.
Как я понимаю, когда делается соединение двух источников данных, оптимальнее, чтобы источники данных - были во временных таблицах (их даже можно проиндексировать - что ускорит соединение), а когда делается просто выборка из выборки - лучше использовать вложенные запросы. Но, полагаю, во втором случае - прирост производительности большим не будет.
Общие рекомендации по ускорению запросов
Здесь дается некоторое объяснение
Тут тоже, см. пункт 8
Обсуждение "Вложенный запрос или временная таблица?"
Что быстрее выполняется: вложенные запросы или временные таблицы в запросах?
Ответили: (123)
+ 1 [ kostyaomsk; ]
# Ответить
123. kostyaomsk (файл скачал) 13.11.2014 10:16
(122) DrAku1a, насчет соединения из 2-х источников это Вы верно заметили. А вот создание того же для тонкого клиента посмотрел требует больших усилий.
# Ответить
124. kostyaomsk (файл скачал) 05.12.2014 08:45
К сожалению нашел два существенных недостатка данной консоли:
1. Значения NULL в результатах запроса отображаются как <Не заполнено> что однажды сбило с толку. Обычно, в запросах заранее заменяют на что-то подобное
ЕстьNULL(таб1.Поле1, 0)
, но все-таки согласитесь неудобно.
2. Не нашел как запустить данную консоль из кода приложения для отладки "многоэтажного" запроса, текст которого "склеивается" динамически, причем содержатся именно вложенные запросы, просмотреть которые проблематично. По коду не нашел ни реквизитов, ни экспортных переменных в модуле объекта и модуле формы.
# Ответить
125. kostyaomsk (файл скачал) 05.12.2014 08:55
По 2-му вопросу запуска консоли из кода 1С 8 я ошибся. Экспортная функция данной консоли запросов ОткрытьДляОтладки(знач Запрос) Экспорт
// Для открытия из конфигуратора (вычислить выражение, CTRL+F9), например
// ВнешниеОтчеты.Создать("f:\Выполнение запроса\нкВыполнениеЗапроса.epf").ОткрытьДляОтладки(Запрос)
Функция ОткрытьДляОтладки(знач Запрос) Экспорт
	Если ТипЗнч(Запрос)<>Тип("Запрос") и ТипЗнч(Запрос)<>Тип("ПостроительОтчета") Тогда
		Возврат "Ошибка:  Переданный объект не является запросом или построителем отчета!";
	КонецЕсли;
	Форма = ПолучитьФорму("ОсновнаяФорма");
	Форма.ТекстЗапроса = Запрос.Текст;
	глозЗаполнитьПараметрыИзЗапроса(Запрос, Форма.ПараметрыЗапроса, Форма.НачПериода, Форма.КонПериода);
	Форма.мНеЗагружатьНастройки = Истина;
	Форма.ЭлементыФормы.ДействияФормы.Кнопки.Файл.Кнопки.Автосохранение.Пометка = Ложь;
	Форма.Открыть();
	Возврат "Запрос открыт для отладки";
КонецФункции
...Показать Скрыть
# Ответить
126. ниЗнайка (файл скачал) 24.12.2014 04:46
попробуйте "Инструменты разработчика", там реализовано удобней
# Ответить
127. cry (файл скачал) 13.01.2015 12:19
очень хорошая обработка давно пользуюсь спасибо
в текущей версии не работает галка на СЗ

+ Колонка "СЗ" (флажок) - при установке данного флажка - параметр будет представлять из себя список значений, а тип в колонке "Тип значения" будет использован в редакторе списка значений - как тип по-умолчанию; - не работает. Хотел добавить несколько элементов групп справочника, после подбора нажимаю ОК - СЗ пустой!.(116) yuraskas,
Ответили: (132)
# Ответить
128. vec435 (файл скачал) 14.01.2015 09:25
у меня 2 пожелания (может быть я пропустил или не понял что уже реализовано - извиняйте)
1) если в коде есть такой участок
"Запрос.УстановитьПараметр("Счет01", ПланыСчетов.Хозрасчетный.ОсновныеСредства);
Запрос.УстановитьПараметр("Счет08", ПланыСчетов.Хозрасчетный.ВложенияВоВнеоборотныеАктивы);
Массив = Новый Массив;
Массив.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_);
Массив.Добавить(ПланыСчетов.Хозрасчетный.ВспомогательныеПроизводства);
Массив.Добавить(ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы);
Массив.Добавить(ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы);
Массив.Добавить(ПланыСчетов.Хозрасчетный.БракВПроизводстве);
Массив.Добавить(ПланыСчетов.Хозрасчетный.ВспомогательныеПроизводства);
Массив.Добавить(ПланыСчетов.Хозрасчетный.ОбслуживающиеПроизводства);
Массив.Добавить(ПланыСчетов.Хозрасчетный.РасходыНаПродажу);

Запрос.УстановитьПараметр("СчетЗатрат", Массив);"

то хотелось бы иметь функцию по быстрому добавлению параметров в запрос из кода, например функцию "ЗапросУстановитьПараметр("Счет01", ПланыСчетов.Хозрасчетный.ОсновныеСредства) - достаточно переименовать в исходном коде

2) бывают часто ситуации что в результат выводятся данные из временной таблицы, источники для которой по тексту не так просто найти и держать в памяти - хотелось бы получить дерево источников для временной таблицы
Ответили: (130) (132)
# Ответить
129. AlexO 14.01.2015 10:03
И тут также: не понял, в чем суть анализатора.
Вижу только единственный "плюс" - псевдовизуальное представление запроса.
Весь же остальной функционал - что он помогает оптимизировать без знания и понимания всего запроса, и как помогает исправлять ошибки - без понимания логики (чужого-не чужого, большого или маленького) запроса целиком?
# Ответить
130. AlexO 14.01.2015 10:07
(128) vec435, Вы предлагаете написать анализатор кода? Так это:
1. Очень и очень трудоемко, даже не считая уникальности каждой конфигурации и её объектов.
2. Если это получится - это будет само по себе ценно (для того же рефакторинга кода), и на порядки превысит ценность самого анализатора (отладчика запросов), куда вы предлагаете данный механизм вставить.
# Ответить
131. kostyaomsk (файл скачал) 14.01.2015 10:20
Минус консоли как замечал - нет "подкраски" вернее выделения "невидимых" значений типов <NULL>, <НЕОПРЕДЕЛЕНО>, <0>, <пустая строка> и <пустая ссылка тип - такой-то>, начал вот http://forum.infostart.ru/forum24/topic123101/message1282369/#message1282369 - надеюсь авторы разных консолей не против доработок.
Ответили: (132)

Прикрепленные файлы:

Отладочный код для консоли Акулова и некоторых других.txt
# Ответить
132. DrAku1a 14.01.2015 10:59
(131),(127) Принято к доработке. Блин, сам пользуюсь - а доделать руки не доходят... Сапожник без сапог...
(128), анализатор кода писать - задачка действительно тяжкая. При загрузке запросов из конфигуратора в режиме отладки - загружается текст запроса, а также все его параметры, в том числе и массивы, списки, таблицы значений и границы. Кроме того, в консоли есть возможность устанавливать параметры программно - см. скриншот.
Дерево источников для временной таблицы - можно увидеть в визуальной структуре запроса.
Ответили: (133)

Прикрепленные файлы:

Image573.png
+ 1 [ kostyaomsk; ]
# Ответить
133. kostyaomsk (файл скачал) 14.01.2015 11:01
(132) DrAku1a, я раз уж начал допишу, а дальше Вы проверьте. Свой вклад так сказать. Все равно функционал можно отключить.
Ответили: (134)
# Ответить
134. DrAku1a 15.01.2015 02:46
(133) Хорошо. Но может имеет смысл - сделать обработчик ПриВыводеСтроки(), а ещё лучше - ПриПолученииДанных() в табличной части, заодно можно такие ячейки выделить цветом. И результат запроса переделывать не нужно будет. Как думаете?
Перем мВыделитьNULL Экспорт;
Перем мИменаКолонокРезультата;
...
//Процедура ВывестиРезультатЗапроса...
//...
	мИменаКолонокРезультата = Новый Массив;
	Если ЭлементыФормы.ДЗ.Значение<>Неопределено Тогда
		Для каждого Колонка Из ЭлементыФормы.ДЗ.Значение.Колонки Цикл
			мИменаКолонокРезультата.Добавить(Колонка.Имя);
		КонецЦикла;
	КонецЕсли;
//КонецПроцедуры

Процедура ДЗПриПолученииДанных(Элемент, ОформленияСтрок)
	Если мИменаКолонокРезультата=Неопределено или мВыделитьNULL<>Истина Тогда
		Возврат;
	КонецЕсли;
	ЦветЯчейкиСПустымЗначением = ЦветаСтиля.ЦветФонаПодсказки;
	Для каждого эл Из ОформленияСтрок Цикл
		ТекСтрока =эл.ДанныеСтроки;
		Для каждого ик Из мИменаКолонокРезультата Цикл
			ТекДанные = ТекСтрока[ик];
			ТекПредставление = "";
			Если ТекДанные=Null Тогда
				эл.Ячейки[ик].УстановитьТекст("<NULL>");
			ИначеЕсли ТекДанные=Неопределено Тогда
				эл.Ячейки[ик].УстановитьТекст("<НЕОПРЕДЕЛЕНО>");
			ИначеЕсли ТекДанные=0 Тогда
				эл.Ячейки[ик].УстановитьТекст("<0>");
			ИначеЕсли ТекДанные='00010101' Тогда
				эл.Ячейки[ик].УстановитьТекст("<Дата(1,1,1)>");
			ИначеЕсли ТекДанные="" Тогда
				эл.Ячейки[ик].УстановитьТекст("<Пустая строка>");
			Иначе
				Попытка
					Если ТекДанные.Пустая() Тогда
						эл.Ячейки[ик].УстановитьТекст("<Пустая ссылка: "+ТипЗнч(ТекДанные)+">");
						эл.Ячейки[ик].ЦветФона = ЦветЯчейкиСПустымЗначением;
					КонецЕсли;
				Исключение					
				КонецПопытки;
				Продолжить;
			КонецЕсли;
			эл.Ячейки[ик].ЦветФона = ЦветЯчейкиСПустымЗначением;
		КонецЦикла;
	КонецЦикла;
КонецПроцедуры
...Показать Скрыть


И запрос для проверки:
ВЫБРАТЬ
	"Когда значение 0" КАК Поле1,
	0 КАК Поле2
ПОМЕСТИТЬ ВТ

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Когда значение NULL",
	NULL

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Когда значение """"",
	""

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Когда значение НЕОПРЕДЕЛЕНО",
	НЕОПРЕДЕЛЕНО

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Когда значение - пустая дата",
	ДАТАВРЕМЯ(1, 1, 1)

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Когда значение - пустая ссылка",
	ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Банки.Наименование КАК Наименование,
	ВТ.Поле2 КАК Поле2,
	ВТ1.Поле2 КАК Поле21,
	ВТ2.Поле2 КАК Поле22
ИЗ
	ВТ КАК ВТ,
	Справочник.Банки КАК Банки,
	ВТ КАК ВТ1,
	ВТ КАК ВТ2

УПОРЯДОЧИТЬ ПО
	Наименование,
	Поле2
...Показать Скрыть


У меня в проверочном запросе почти 4 000 000 строк - тормозов нет. ПриПолученииДанных() - обрабатывается порциями (при PgDn/PgUp/Home/End) - только для прорисовываемых строк.
Ответили: (135) (136) (140)
+ 1 [ kostyaomsk; ]
# Ответить
135. AlexO 15.01.2015 10:26
(134) DrAku1a,
сделать обработчик ПриВыводеСтроки(), а ещё лучше - ПриПолученииДанных()
В УФ их уже не существует, так что тут двойственный эффект от полезности такого обработчика.
# Ответить
136. AlexO 15.01.2015 10:27
(134) DrAku1a,
У меня в проверочном запросе почти 4 000 000 строк
Запрос 4 млн строк? Это что - написана ОС в виде запроса 1С?
Ответили: (137) (138)
# Ответить
137. DrAku1a 15.01.2015 10:32
(136) Ой... Имеется в виду 4 000 000 строк в результате выполнения запроса.
Ответили: (139)
# Ответить
138. DrAku1a 15.01.2015 10:33
(136) Ну да, в УФ надо будет всё-равно переделывать.
# Ответить
139. AlexO 15.01.2015 10:39
(137) DrAku1a,
Имеется в виду 4 000 000 строк
Честно - даже не представляю, как окно-вывод с таблицей строк 1С, тормозящая где только можно, отображает 4 млн строк ))
Ответили: (142)
# Ответить
140. kostyaomsk (файл скачал) 15.01.2015 14:38
(134) DrAku1a, насчет "раскраски" цветом как в других консолях тоже думал. Вот что значит профессиональное программирование! Споткнулся на типах и переделывал раза 4. Хотя бы для толстых форм нужно доделать. Там больше хотелось с типами поработать и с таблицами для практики.
С запросами сразу не хотелось связываться, ведь если отбор на равенство и примитивный скорость встроенных методов языка и запроса одинакова?
Вот насчет управляемых форм (да еще чтоб порциями в пределах видимости экрана) тоже хорошая задача. По-моему динамический список сам что-то читает и передает на клиент что он "в пределах видимости". Но начнем с малого.
Ответили: (141)
# Ответить
141. AlexO 15.01.2015 15:08
(140) kostyaomsk,
По-моему динамический список сам что-то читает и передает на клиент что он "в пределах видимости".
ДС читает все, а вот выводит только то, что на экране помещается, т.е. блоками.
Вы как себе представляете - крутанул список вниз, и пошел запрос обрабатываться к базе?
Ответили: (145) (147)
# Ответить
142. DrAku1a 15.01.2015 15:46
(139) AlexO, вообще без проблем показывает. Тормозит? Не, не замечал такого.
Ответили: (143)
# Ответить
143. AlexO 15.01.2015 15:54
(142) DrAku1a, А как вы опеределили количество записей в списке?
Ответили: (144)
# Ответить
144. DrAku1a 15.01.2015 16:00
(143)
ТЗ.Количество()
Ответили: (146)
# Ответить
145. kostyaomsk (файл скачал) 15.01.2015 16:10
(141) AlexO, вопрос по данному механизму чтения и вывода больших данных в клиент-сервере:
1. Если в ОЗУ на сервере есть большая таблица значений в несколько миллионов строк и ее нужно отображать.
2. Тоже если есть запрос в динамическом списке. Он то по мере необходимости запрашивает на сервере.
Как тут поступать? Как раз для задач где делаем запрос в консоли и хотим это все отображать частями и чтоб не тормозило. Просто что-то нужно найти и прочитать в работающей базе (заодно чтоб тип в глаза бросился).
# Ответить
146. AlexO 15.01.2015 16:45
(144) DrAku1a,
ТЗ.Количество()
А где тут количество записей в списке? Или вы назвали списком - вывод ТЗ в ТЧ на форме?
Ответили: (147)
− 1 [ CratosX; ]
# Ответить
147. DrAku1a 15.01.2015 16:51
(146)Да. В запросе там используется вывод в ТЗ. Поскольку это не УФ - тормозов нет. Как будет на УФ - ещё не знаю.
(141)Анатомия платформы. Как устроен динамический список.
Для порционного чтения запросом - как-то так:
ВЫБРАТЬ ПЕРВЫЕ 100
  Ссылка 
из <Источник>
где
  Ссылка>&НачальныйЭлемент
Упорядочить ПО
  Ссылка
Автоупорядочивание
...Показать Скрыть

&НачальныйЭлемент - изначально пустая ссылка, потом - последний элемент в порции.
Ответили: (149)
+ 1 [ kostyaomsk; ]
# Ответить
148. AlX0id (файл скачал) 16.01.2015 12:41
О, вот обновление заполнения параметров есть гуд ) Поставил бы еще один плюсик, да уже есть один )
# Ответить
149. kostyaomsk (файл скачал) 17.01.2015 10:30
(147) DrAku1a, так уже модификация запроса на лету нужна. Это уже в сам механизм "парсинга" нужно лезть.
Ответили: (150)
# Ответить
150. DrAku1a 18.01.2015 11:35
(149) Это к чему? Для УФ?
# Ответить
151. Дмитрий74Чел (файл скачал) 31.12.2015 06:53
Я так и не понял как работать с галкой "СЗ" в параметрах. У меня всё еще как (116)
# Ответить
152. uri1978 (файл скачал) 01.09.2016 17:51
Здравствуйте. Проект еще жив? Версия: 1216
1. Отжимаем кнопку "Не удалять временные таблицы запроса", выделяем часть запроса и нажимаем "Выполнить по выделенной части запроса". На закладке "Результат" не работает кнопка "Вывести таблицу".
{Форма.ОсновнаяФорма.Форма(1856)}: Ошибка при вызове метода контекста (Вывести)
Построитель.Вывести();
по причине:
Не установлен менеджер временных таблиц

2. В параметрах так и не смог установить список значений (План счетов бухгалтерского учета), постоянно очищает параметр. Сперва установил значение параметра, потом нажал на флажок в колонке "СЗ", открыл список, отредактировал, закрыл - пусто. При установке/снятии флажка "СЗ" в таблице параметров, выдает ошибку. Параметр типа "План счетов бухгалтерского учета" (мне нужно ввести список значений, предыдущая ошибка):
{Форма.ОсновнаяФорма.Форма(2315)}: Поле объекта не обнаружено (ТипЗначения)
ТД.Значение = ?(ТипЗнч(ТД.ТипЗначения)=Тип("ОписаниеТипов"), ТД.ТипЗначения.ПривестиЗначение(), Неопределено);

3. Можно ли отключить предупреждение - "Не заполнены ВСЕ параметры запроса." Они и не должны быть всегда заполнены.
4. Не понял как работает пошаговое выполнение запроса. Как не игрался настройками не смог запустить.
5. После функции "Сделать вложенным запросом" не работает Ctrl+Z. Как вернуть если передумал? После собирания/разбирания пакетного запроса, тоже нельзя отменить.
6. Можно ли функцию "Просмотр ВТ", на закладке "Результат" сделать выпадающим списком, чтобы можно было открывать несколько временных таблиц (каждая в своем окне) и анализировать.
7. Собирание пакетного запроса во вложенный не работает. Удаляйте "Разрешенные" и "Индексировать" из каждого пакетного запроса при собирании. Если в запросе используется наложение условий на виртуальную таблицу остатков из временной таблицы, тоже не может собрать. В общем, не работает.

Дальше не тестировал.
Ответили: (153)
# Ответить
153. DrAku1a 02.09.2016 02:39
(152) Проект жив, но времени уделяю мало, хотя сам - пользуюсь )
1. Отжимаем кнопку "Не удалять временные таблицы запроса", выделяем часть запроса и нажимаем "Выполнить по выделенной части запроса". На закладке "Результат" не работает кнопка "Вывести таблицу".
Принято.
2. В параметрах так и не смог установить список значений (План счетов бухгалтерского учета), постоянно очищает параметр.
Список значений не работает - это баг, в будущей версии - поправлю.
3. Можно ли отключить предупреждение - "Не заполнены ВСЕ параметры запроса." Они и не должны быть всегда заполнены.
Для незаполненных параметров - можно выбрать любой тип значения, кроме "Неопределено" - тогда это сообщение не будет появляться. Ранее, в прошлых версиях - в таблице параметров был флажок "Оставлять незаполненным", но я его убрал. Могу вернуть.
В любом случае, считаю сообщение - полезным напомнимнием. И там не предупреждение, а вопрос "Продолжить?" (Да/Нет).
4. Не понял как работает пошаговое выполнение запроса. Как не игрался настройками не смог запустить.
1. В текстовом поле должен быть пакетный запрос
2. Нажать кнопку "Пошаговое выполнение пакета запросов" - появится окошко (прикреплено справа)
3. Нажать "Выполнить" - в окошке будет заполнен список запросов из пакета
4. Выбрать запросы, не которых нужно делать точку останова (в окошке справа, по умолчанию - все выбраны, двойной клик по строке - переключает выбрано/не выбрано)
5. Нажать выполнить - при этом будет выполнен один шаг, изучить результат, повторить шаг 5 до конца пакета запросов.
6. Когда все запросы будут выполнены - при нажатии "Выполнить" - будет выдано сообщение "Выполнение пакета запросов завершено".
Примечание: на шагах 3-5 поле с текстом запросов - блокируется от изменений. Для того, чтобы прекратить выполнение - нажмите "Стоп" в панели со списком запросов (справа). А ещё, на этой панели - есть кнопки "Вернуться на шаг назад" и "Показать".
5. После функции "Сделать вложенным запросом" не работает Ctrl+Z. Как вернуть если передумал? После собирания/разбирания пакетного запроса, тоже нельзя отменить.
Как взаимодействовать с CTRL+Z - я не знаю, поэтому сделал кнопку "Отменить изменения" - вторая справа, становится доступной - после выполнения операции "Сделать вложенным запросом", "Извлечь подзапрос из вложенного", "Разложить запрос" или "Собрать запрос", но действует только на одну операцию.
6. Можно ли функцию "Просмотр ВТ", на закладке "Результат" сделать выпадающим списком, чтобы можно было открывать несколько временных таблиц (каждая в своем окне) и анализировать.
Можно. Сделаю в будущем.
7. Собирание пакетного запроса во вложенный не работает. Удаляйте "Разрешенные" и "Индексировать" из каждого пакетного запроса при собирании. Если в запросе используется наложение условий на виртуальную таблицу остатков из временной таблицы, тоже не может собрать. В общем, не работает.
Принято.
# Ответить
154. DrAku1a 02.09.2016 06:15
Обновил публикацию (добавлена новая версия с исправлениями и наработками). Описание - обновлю чуть позднее.
Блиин... Обновил публикацию (добавил версию) - и система сама поставила цену на все файлы в 1$m :-(
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл