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




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

Про 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. Инструменты разработчика

 

 

22 Comments

  1. DrAku1a

    На правах саморекламы 🙂

    1. Визуальная структура запроса

    2. Отладчик запросов (содержит в себе 1)

    Reply
  2. Ndochp

    У Вас насколько я понимаю строится дерево, аналогично голд парсеровскому? (только не интерактивное вроде, а картинкой)

    Это несколько не та задача. Мне надо было, например, вывести пользователю базу с начала года. По Yed’овской структуре более менее видно, что надо подкрутить ДоходыЗаГодыИтого и ВТБазаНарастающимИтогом подключить в ПоляОтчета и Запрос1. Из дерева это видно гораздо хуже.

    А вот то, что если хочешь отрезать пособия от запроса , то можно грохнуть ВТУчетнаяПолитикаНалоговыйУчет, но нельзя ВТНалоговый учет из дерева не видно совсем.

    Reply
  3. tormozit

    yEd — мощная штука, хотя и глючная. Жаль у него нет COM интерфейса, а то можно было бы сделать полностью автоматическую генерацию графа.

    Reply
  4. tormozit

    Кстати пользуясь случаем хочу отметить, что в конструкторе запросов ИР приведенный в статье запрос выглядел бы заметно более читабельно. Если кинешь текст запроса, я сделаю скриншот. А вообще лучше текст запроса включить в статью.

    Reply
  5. Ndochp

    Запрос — типовой ЗУПовский «Анализ начисленных налогов и взносов». Не включил его в статью из соображений соблюдения авторских прав.

    Кстати, конструктор запросов ИР в комплект мобильных ИР где-то включен? А то кнопка «Конструктор» в консоли запросов ИР вызывает вроде обычный конструктор.

    Reply
  6. headMade

    (5)

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

    а то мне хотелось бы взглянуть на то как он выглядит в конструкторе запросов ИР

    Reply
  7. Ndochp

    Уже отправил. Самому интересно.

    Reply
  8. yuraos

    Очень интересно!

    Правда построенная диаграмма тоже достаточно необъятна.

    😉

    Reply
  9. Rothschild

    Нда,

    конструктор запросов порой просто убивает

    своей неадекватностью решаемым задачам.

    Иногда он может в буквальном смысле убить сеанс 1С,

    когда в запросе вроде того, что на скриншоте выше,

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

    Reply
  10. Ndochp

    (9) Я не виноват, это типовая ЗУП 🙂

    И боюсь нагляднее этот запрос уже не нарисовать.

    Reply
  11. gendal

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

    Reply
  12. tormozit

    Вот текст этого запроса в конструкторе запроса ИР. Благодаря ему исправил несколько ошибок в своем конструкторе. Т.е. в предпоследней версии 3.02 он не открывается из-за них. В свежей версии 3.03 они уже исправлены.

    (картинка может не показываться из-за глюка сайта)

    Reply
  13. CheBurator

    (12) потому что они дятлы. у них мозги не в ту сторону повернуты. по живому не работали. пишут сферических коней на свой мкс…

    Reply
  14. Denis_Viktorovich

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

    Reply
  15. gendal

    Иногда стыдно за поделки 1С перед пользователями. Начинали работать с УПП в 2006 году, так там блок ЗУП вообще никакой был. Штатные программисты, написавшие старую ЗП на ФоксПро, вместо которой должно было встать УПП, смеялись, глядя на это чудо. «Почему это так сделано?» — спрашивали они

    Reply
  16. Afandi

    При загрузке файлы оказываются не полными. В чем проблема?

    Reply
  17. Ndochp

    Предположительно в Инфостарте глюк произошел. Я когда скачал в начале файла был HTML код заголовка инфостарта.

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

    Reply
  18. Ndochp

    Ответ от техподдержки

    >======================= СООБЩЕНИЕ ===================================

    Добрый день!

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

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

    Относилась ли бесплатность ко мне как автору обращения, или к любому пользователю, скачавшему файл я ХЗ.

    Reply
  19. headMade

    «сновной набор данных этого запроса содержит 34 запроса в пакете.»

    подскажите как вы пакеты вытягиваете в один общий запрос?

    Reply
  20. Ndochp

    (20) headMade, в данном случае никак. Просто беру текст запроса для набора данных и копипащу в консоль запросов из Инструментов Разработчика. Там 33 команды «поместить в».

    Reply
  21. Ndochp

    Обновлена обработка и общий архив.

    Парсер теперь вместо имени подчиненного узла «<ChooseTable>» стал отдавать «<TableWithName>»

    Соответственно, если вы качали прошлую версию, то надо заменить строку 19:

    Если Найти(строка, «<ChooseTable>») > 0  тогда

    на

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *