gifts2017

Использование yEd для понимания картины запроса

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

Как увидеть структуру запроса, если даже надписи на вкладках пакетника не видны.

Про yEd тут уже писали, но применительно к модулям. Я же вспомнил про него, когда понадобилось слегка переработать отчет ЗУП "Анализ начисленных налогов и взносов". Надо было вытащить некоторые промежуточные данные.
Основной набор данных этого запроса содержит 34 запроса в пакете. Понять, что с этим делать было слабо реально, но на помощь пришли проверенные инструменты (разработчика в мобильной версии) Консоль запросов с GOLD Parser'ом поскрипев разложила эту жуть в дерево ВТ, подзапросов и объединений. Однако в этот раз все оказалось хуже, чем обычно: ВТшек оказалось слишком много. Поэтому возникла идея получить более наглядную картину чем последовательность их создания. На помощь пришел диаграмме yEd с возможностью импорта данных графа из экселя.

В итоге родилась следующая последовательность действий, приводящая к красивой картинке:

1. Гружу запрос в консоль с ГолдПарсером (консоль запросов из комплекта мобильных инструментов разработчика в моем случае)

2. Вывожу список дерева запроса в текстовый документ интересует колонка "дерево запроса" "тип узла".  можно больше, но эти - обязательно.

 

3. Копипащу результат в спец обработку: в моем варианте она готовит данные о том какая таблица для какой используется объединения и внутренние запросы игнорируются

4. Результат работы обработки копипащу в эксель файл сохраняю и открываю yEd'ом

5. В диалоге настройки заполняю:

5.1 в Edge list Data - выделяем первый блок эксельки где несколько колонок Target - колонка A источник – B. Галку снимаем

5.2 в Node list - колонка А после списка связей. галку снимаем

 

5.3 На соседней странице (Presentation) из выпадушки Label Text выбираем Node data1 Layout – Hierarchical

 

 Получаем следующий красивый результат (чтобы не ломать глаза и не равть экран вот ссылка на 100% масштаб картинки):

 

Вот собственно и все. Для пущей красоты можно сделать автогруппировку. Natural Cluster дает ИМХО лучшую картинку. В приложенных файлах в последнем показан результат после исправления нескольких ошибок группировки. Как оно было изначально можно понять по цвету узла.

Ссылки:

1. yEd

2. Мобильные инструменты разработчика

3. Инструменты разработчика

 

 

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

Наименование Файл Версия Размер
Обработка 16
.epf 6,44Kb
17.12.15
16
.epf 1.1.1 6,44Kb Скачать
Пример обработки запроса 8
.zip 39,69Kb
27.12.13
8
.zip 39,69Kb Скачать
Общий архив 46
.zip 126,21Kb
17.12.15
46
.zip 1.1.1 126,21Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Андрей Акулов (DrAku1a) 22.01.14 05:00
2. Dima Neumoichev (Ndochp) 22.01.14 06:28
У Вас насколько я понимаю строится дерево, аналогично голд парсеровскому? (только не интерактивное вроде, а картинкой)
Это несколько не та задача. Мне надо было, например, вывести пользователю базу с начала года. По Yed'овской структуре более менее видно, что надо подкрутить ДоходыЗаГодыИтого и ВТБазаНарастающимИтогом подключить в ПоляОтчета и Запрос1. Из дерева это видно гораздо хуже.
А вот то, что если хочешь отрезать пособия от запроса , то можно грохнуть ВТУчетнаяПолитикаНалоговыйУчет, но нельзя ВТНалоговый учет из дерева не видно совсем.
3. Сергей Старых (tormozit) 22.01.14 09:18
yEd - мощная штука, хотя и глючная. Жаль у него нет COM интерфейса, а то можно было бы сделать полностью автоматическую генерацию графа.
4. Сергей Старых (tormozit) 22.01.14 09:21
Кстати пользуясь случаем хочу отметить, что в конструкторе запросов ИР приведенный в статье запрос выглядел бы заметно более читабельно. Если кинешь текст запроса, я сделаю скриншот. А вообще лучше текст запроса включить в статью.
5. Dima Neumoichev (Ndochp) 22.01.14 12:02
Запрос - типовой ЗУПовский "Анализ начисленных налогов и взносов". Не включил его в статью из соображений соблюдения авторских прав.
Кстати, конструктор запросов ИР в комплект мобильных ИР где-то включен? А то кнопка "Конструктор" в консоли запросов ИР вызывает вроде обычный конструктор.
6. Сергей Старых (tormozit) 22.01.14 13:02
7. Анатолий Бритько (headMade) 23.01.14 15:13
(5) Ndochp,
можно вас попросить выслать текст запроса tormozit (по почте или в личку если так важно соблюдение авторских прав).
а то мне хотелось бы взглянуть на то как он выглядит в конструкторе запросов ИР
8. Dima Neumoichev (Ndochp) 24.01.14 00:51
Уже отправил. Самому интересно.
9. Юрий Осипов (yuraos) 24.01.14 05:50
Очень интересно!
Правда построенная диаграмма тоже достаточно необъятна.
;)
10. Nathan Rothschild (Rothschild) 24.01.14 05:51
Нда,
конструктор запросов порой просто убивает
своей неадекватностью решаемым задачам.

Иногда он может в буквальном смысле убить сеанс 1С,
когда в запросе вроде того, что на скриншоте выше,
переименовать какой-нибудь подзапрос в выше стоящих батчах пакета запросов.
11. Dima Neumoichev (Ndochp) 24.01.14 08:58
(9) Я не виноват, это типовая ЗУП :)
И боюсь нагляднее этот запрос уже не нарисовать.
12. Антон gendal (gendal) 24.01.14 10:58
Интересно, почему 1С штатно такой механизм визуализации запросов не имеет в конфигураторе. Иной раз об их "трехэтажные" голову разбить можно.
13. Сергей Старых (tormozit) 25.01.14 10:14
Вот текст этого запроса в конструкторе запроса ИР. Благодаря ему исправил несколько ошибок в своем конструкторе. Т.е. в предпоследней версии 3.02 он не открывается из-за них. В свежей версии 3.03 они уже исправлены.
(картинка может не показываться из-за глюка сайта)
Прикрепленные файлы:
14. Сергей (Che) Коцюра (CheBurator) 05.02.14 13:05
(12) потому что они дятлы. у них мозги не в ту сторону повернуты. по живому не работали. пишут сферических коней на свой мкс...
wolfsoft; +1 Ответить
15. Денис Васильев (Denis_Viktorovich) 06.02.14 20:11
Да не то чтобы дятлы, просто у них наверное на каждый запрос нанята одна штатная единицы с двумя высшими математическими образованиями и они не понимают что люди которые разбирают их код работают со всеми их ними запроса ми и конфами в одиночку.
16. Антон gendal (gendal) 08.02.14 14:33
Иногда стыдно за поделки 1С перед пользователями. Начинали работать с УПП в 2006 году, так там блок ЗУП вообще никакой был. Штатные программисты, написавшие старую ЗП на ФоксПро, вместо которой должно было встать УПП, смеялись, глядя на это чудо. "Почему это так сделано?" - спрашивали они
17. Гусен Халилуллаев (Afandi) 10.02.14 13:00
При загрузке файлы оказываются не полными. В чем проблема?
18. Dima Neumoichev (Ndochp) 10.02.14 13:46
Предположительно в Инфостарте глюк произошел. Я когда скачал в начале файла был HTML код заголовка инфостарта.
Я с техподдержкой связался, чтобы не ждать ответа пришли мыло, скину напрямую.
19. Dima Neumoichev (Ndochp) 10.02.14 17:42
Ответ от техподдержки
>======================= СООБЩЕНИЕ ===================================

Добрый день!
Проблема исправлена, попробуйте скачать файл повторно, загрузка будет бесплатной.

>===========================================================­==========

Относилась ли бесплатность ко мне как автору обращения, или к любому пользователю, скачавшему файл я ХЗ.
20. Анатолий Бритько (headMade) 26.02.14 15:00
"сновной набор данных этого запроса содержит 34 запроса в пакете."

подскажите как вы пакеты вытягиваете в один общий запрос?
21. Dima Neumoichev (Ndochp) 26.02.14 15:52
(20) headMade, в данном случае никак. Просто беру текст запроса для набора данных и копипащу в консоль запросов из Инструментов Разработчика. Там 33 команды "поместить в".
22. Dima Neumoichev (Ndochp) 17.12.15 16:23
Обновлена обработка и общий архив.
Парсер теперь вместо имени подчиненного узла "<ChooseTable>" стал отдавать "<TableWithName>"
Соответственно, если вы качали прошлую версию, то надо заменить строку 19:
Если Найти(строка, "<ChooseTable>") > 0  тогда

на
Если Найти(строка, "<ChooseTable>") > 0 
Или Найти(строка, "<TableWithName>") > 0 Тогда