Книга знаний

Инф. технологии

Построитель графов DOT - анализ структуры любой конфигурации 7.7 и 8.0

Вашему вниманию предлагается программа DOT, которая принимает на вход текстовый файл со структурой графа, а на выходе формирует граф в виде графического, векторного или текстового файла. Этот механизм очень удобно применять для анализа структуры любой конфигурации для 1С:Предприятия 7.7 и 8.0. Автор статьи: Волшебник
Последняя редакция №1 от 21.02.05
URL: http://kb.mista.ru/article.php?id=11

http://mista.ru/dot/

Часто возникает необходимость разобраться в сложной конфигурации, разобраться как она устроена, каковы взаимосвязи между объектами конфигурации. Например, такая задача особенно актуальна для новых конфигураций на платформе 8.0. Структуру конфигурации желательно вывести в графическом виде, поскольку это наиболее быстрый способ понимания, потому что картинка стоит тысячи слов.
Теперь можно уверенно сказать, что такая возможность есть! Для этого можно применить программу под названием «DOT», которая принимает на вход текстовый файл со структурой графа, а на выходе формирует граф в виде графического, векторного или текстового файла.

Программа «DOT» написана на С специалистами лаборатории AT&T и распространяется в открытых исходниках. Программа работает на всех операционных системах, включая Windows, Linux/Unix, Mac OS. В конце этой статьи приведены ссылки для скачивания всех необходимых файлов.

Входной dot-файл

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

Graph G{
Узел1 -> Узел2;
Узел1 -> Узел3;
Узел2 -> Узел3;
}

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

DOT позволяет изменять внешний вид графа. Например, можно изменять форму фигур (прямоугольники, овалы, круги, параллелограммы, многоугольники), цвет и шрифт текста, цвет фона фигур, стиль стрелок и рамок фигур, подписи стрелок и т.д. Это позволяет формировать множество графов, отображающих любую информацию в графическом виде. Это делается путем указания во входном файле инструкций.

В следующем примере изменяется формат стрелки и формат одного узла:

digraph G {
Узел1->Узел2 [style="bold”, arrowhead=”invdot”, label=”Связь1", fontsize=12];
Узел1 [shape="ellipse", label="Узел1"];
}

Сначала описываются взаимосвязи между узлами, а затем описывается формат узлов.

Ниже дано описание некоторых атрибутов:

style – вид стрелки – обычная (solid), жирная (bold), пунктирная (dotted, dashed) и т.д.
arrowhead – форма конца (головы) стрелки.
arrowtail – форма начала (хвоста) стрелки.
label – подпись стрелки или узла
shape – форма фигур: прямоугольник, эллипс и т.д.
fontname, fontsize, fontcolor – имя, размер и цвет шрифта
fillcolor – цвет заливки
Программа DOT позволяет использовать и другие формы вывода схем, например, в виде кластеров и в виде записей (структур). Полный формат этих инструкций приведен в руководстве пользователя (PDF-файл) – см. ссылку в конце статьи.

Можно выводить граф в двух режимах: иерархический (dot) и окрестный (neato). В первом режиме узлы, не имеющие входных стрелок, располагаются преимущественно сверху. Таким образом, схему можно читать сверху вниз, что очень удобно для восприятия, но графы получаются очень широкими. Во втором режиме граф выстраивается на всю ширину и высоту страницы, но иерархия не соблюдается. Режим построения графа задается выбором движка: dot или neato.

Русификация DOT

При использовании программы возникает проблема русификации, чтобы в выходном графическом файле отображались русские буквы, а не закорючки. Для решения этой проблемы нужно на вход программы подавать файл в кодировке UNICODE (UTF-8). Но самое главное, что в этом файле не должно быть первых трех байтов, обозначающих формат Unicode. Эти байты добавляются некоторыми программами при сохранении файла в формате Unicode, в частности платформой 1С:Предприятие 8.0 или Блокнотом. Убрать эти байты можно любой программой, позволяющей редактировать файлы в 16-ричном формате. Кодировка UTF-8 отличается от UTF-16 тем, что стандартные английские символы кодируются одним байтом, а не двумя.

Выходной файл

Программа DOT поддерживает следующие форматы выходного файла:

PNG,
GIF,
JPEG,
SVG(xml),
DOT (txt),
imap (html),
VRML,
PostScript
и другие.
Обратите внимание на векторный формат SVG, который по сути является XML-файлом. Этот формат набирает всю большую популярность и поддерживается многими графическими программами, в том числе Microsoft Visio 2003, Adobe Illustrator 10 и специализированными SVG-редакторами. Для просмотра файла в формате SVG нужно скачать плагин к браузеру Internet Explorer с сайта www.adobe.com/svg

Теоретически, обработав получившийся можно добавить ему интерактивности. Например, можно выводить более подробную информацию об объекте конфигурации. Если у вас получится заставить работать SVG в интерактивном режиме в программе 1С:Предприятие 7.7 или 8.0, обязательно расскажите, как вы это сделали и напишите мне по адресу или на форум.

Библиотека Wingraphviz.dll

Есть возможность строить такие же графы полностью программно через технологию COM. Для этого используется программа Wingraphviz, содержащая в себе движок DOT. Эта программа оформлена в виде DLL и позволяет вызывать себя из других программ, в том числе из 1С:Предприятия 7.7 и 8.0 (только не в качестве внешней компоненты, а в качестве COM-объекта).

Для использования библиотеки Wingraphviz.dll ее необходимо зарегистрировать в реестре c помощью команды:

regsvr32.exe <постоянный путь к dll> (для Windows 2000/XP)
regserver.exe <постоянный путь к dll> (для Windows 95/98/Me)
Для этого нужно иметь права локального администратора на данной машине. После регистрации перемещать DLL в другой каталог нельзя, поскольку придется заново регистрировать программу в реестре.

В программном коде Wingraphviz вызывается следующим образом:

1С:Предприятие 7.7:

Dot=СоздатьОбъект("Wingraphviz.dot");
ИсхСтрока =AnsiToOem(ИсхСтрока);
Dot.CodePage=866;
Img=Dot.ToPNG(ИсхСтрока);
Img.Save(ПолныйПутьКФайлуPNG);

1С:Предприятие 8.0:

В версии 8.0 нет замечательной функции AnsiToOem, а все строки хранятся в кодировке Unicode. В результате экспериментов был найден следующий способ использования программы Wingraphviz:

Текст = Новый ТекстовыйДокумент;
Текст.УстановитьТекст(ИсхСтрока);
Текст.Записать("c:\temp.txt",КодировкаТекста.OEM);
Текст.Прочитать("c:\temp.txt",КодировкаТекста.ANSI);

dot = ПолучитьCOMОбъект("","Wingraphviz.dot");
ПолныйПутьКФайлуPNG = "c:\file.png";
dot.Codepage = 866;
Img = dot.ToPNG(Стр);
Img.Save(ПолныйПутьКФайлуPNG);

ЭлементыФормы.КартинкаНаФорме.Картинка =
                               Новый Картинка (ПолныйПутьКФайлуPNG);



Последняя строка в приведенном выше примере отображает получившийся граф в экранной форме 1С:Предприятия 8.0 в элементе управления «Картинка».

Обработки для 1С:Предприятия 7.7 и 8.0

Таким образом, построитель графов DOT и программа Wingraphviz позволяют полностью автоматизированно рисовать графы. Одним из самых замечательных применений данных программ является автоматизированное построение структуры любой конфигурации на 1С:Предприятие 7.7 и 8.0. Для этого нужно пройтись по метаданным и сформировать текстовый файл определенной структуры (на DOT-языке, который был описан выше).

Следующие обработки позволяют выводить структуру конфигурации в подобный файл:

Для версии 7.7 - обработка «Анализ метаданных 7.7». Автор Кренделев Алексей.
Для версии 8.0 – обработка «Структура конфигурации 8.0». Автор Станислав Митичкин
Обе обработки позволяют сформировать входной файл для DOT, содержащий взаимосвязи между объектами конфигурации по реквизитам и по подчиненным справочникам. Кроме того, обе обработки позволяют установить фильтр по объектам, т.е. перечислить объекты конфигурации, которые обязательно должны быть отражены на диаграмме. В обработке для версии 8.0 есть возможность указать фильтр по подсистеме и тогда в диаграмму войдут все объекты, принадлежащие данной подсистеме.

Ссылки

Сводная страница на www.mista.ru по программе DOT:
http://www.mista.ru/dot

Домашняя страница проекта DOT
http://www.research.att.com/sw/tools/graphviz/

Здесь можно скачать саму программу и исходники к ней:
http://www.research.att.com/sw/tools/graphviz/download.html

Зеркало: http://www.graphviz.org/pub/graphviz/

Руководство пользователя по DOT (PDF-формат):
http://www.research.att.com/sw/tools/graphviz/dotguide.pdf

Справочное руководство по DOT:
http://www.research.att.com/sw/tools/graphviz/refs.html

Руководство пользователя по WinGraphviz (PDF-формат):
http://www.research.att.com/sw/tools/graphviz/libguide.pdf

Описание программы WinGraphviz
http://home.so-net.net.tw/oodtsen/wingraphviz/index.htm

Обработка «Структура конфигурации» для 8.0 (Митичкин Станислав)
http://www.mista.ru/dot/amv8.htm

Обработка «Анализ метаданных» для 7.7 (Кренделев Алексей)
http://www.mista.ru/dot/amv7.htm

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика