Так получилось, что исходники моего предыдущего Визио, видимо, безвозвратно исчезли, а были мысли его немного доработать. Тут удачно подвернулась под руку обработка с примером работы с графической схемой. Так и родилась идея воспроизвести проект в рамках v8
Итак. Обработка предназначена для изучения и графического отображения взаимосвязей объектов в произвольной конфигурации v8.1
Обработка поддерживает два с половиой 🙂 способа построения графической схемы.
1. Путем перетаскивания объекта метаданных на графическое поле. Т.к. графическая схема не поддерживает в полной мере Drag&Drop, новые элементы распологаются в левом верхнем углу, для последующего позиционирования по месту.
2. Путем ручного указания (двойным кликом в правом столбце дерева метаданных ) объектов, которые нужно будет вывести в графическую схему. Для вывода на схему используем кнопку «Обновить».
2,5. Двойным кликом по объекту метаданных вызываем окно ссылок данного объекта. В окне ссылок так же можно указать объекты подлежащие последующему выводу кнопкой обновить (даблкликом в правой колонке). Двойной клик по объекту метаданных, в окне связей, позволит перейди к окну связей выбранного объекта.
Обработка только для 1С: Предприятие 8.1? Конвертнуть получится в 8.2?
хотел бы глянуть, но денег нема =)
Я так и не понял причем тут визио? рисуем же в 1с а визио это так с боку?
(1)Ну она не под управляемыми формами сделана. А так я ее разрабатывал под 8.2.14.540
http://infostart.ru/public/16838/ )
(2)Денег?! я за нее денег не просил! давно, видать, не заходил сюда, что то поменялось.
(3)Мне всегда было проще представлять структуру БД в виде связанных табличек. Первый вариант автоматизации этого дела был сделан вообще в Екселе. Понятно что все это было очень криво. Потом была попытка привязаться к MS Visio. Но что то мне с этими шейпами нормально подружится не получилось и сколько-нибудь законченного решения не было. А потом был проект на Дельфе и назван он был в отместку Visio1С — вот так и получилось (
очень интересно, для документации и аналитики — это супер!
замечания актуальны? или это скорее как пример работы с.. и дальше дорабатываться особо не будет?
(1)
обработка как раз только для 8.2, а вот под 8.1, я так понимаю, нет версий
(5)Актуальны. Думаю что дорабатыватся будет, хотя может и не быстро.
если честно я не программирую на 8 :-[ Только учусь, и сваял с одной стороны инструмент мне необходимый, а с другой — просто привыкал к конфигуратору.
(6)Нету. она написана на «одном дыхании» за несколько дней
(7)
ну там много шероховатостей с отображением,.. если кратко, что бросилось, то вот:
— нужна кнопка «Обновить схему», аналогичная клику по заголовке какого-либо блока. Это помогает, когда сбиваются привязки, появляются обрезки, обрывки и пр.
— хотелось бы, чтобы связи «понимали», когда мы переместили зависимый блок на левую стороны от ведущего — сейчас связь не перескакивает и рисуется загогулина. Схемы «звёздного» вида только так получится нарисовать.
— хотелось бы перемещать реквизиты вверх-вниз внутри объекта с переинициализацией связей — это обеспечит непересекающиеся связи без перетаскивания самих блоков
Да, и там еще функция «РазобратьПутьКОбъектуМетаданных(ПутьКДанным)» может пересечься с такой же функцией глобального модуля, что вызывает ашипку (на бухии 1.5 — точно). Для чистоты лучше б переименовать.
(если я что-то упомянул/упомяну нереализуемого — сорри — со схемами совсем не работал)
(8)
1. Ну а что клика по блоку недостаточно? Проблема в том что маршрут прохождения линии в случае перетаскивания объекта определяется самой графической схемой. Я могу конечно перехватить факт изменения положения объекта и заново перерисовать линии, но это достаточно геморойный алгоритм. Или я не понял сути предложения.
2. Отличная идея. Соответственно и входящие линии можно перебрасывать по трем точкам шапки. Сделаю
3. Тоже здравая мысль, если бы не одно «но» — реквизиты группируются в блоки: Данные, Табличная часть, Движения, Измерения и т.д. Переместить внутри блока не проблема, а за пределы? Единственно если не выводить блоки совсем, а реквизитам делать прификс принадлежности блоку, типа «Измерение: Контрагент» или «ТЧ:ДвиженияТоваров:Номенклатура». Можно сделать
4. Спасибо за наводку, переименую.
Классная задумка!
http://www.mista.ru/subscribe/56.htm
Еще давно видел как строили диаграмму метаданных на основе Wingraphviz:
но это более интересно и патриотично, плюс интерактивно. Сам знаю, что с графической схемой надо помудохаться. Если бы 1С добавили методы добавления элементов графической схемы, то можно было бы творить чудеса.
Колонка выводить в схему непонятно как работает. Если объект добавляется на схему, то признак ставится. При ручном указании ничего не происходит. Или что-то не так делаю?
И еще хотелось бы возможность выбора показываемых на схеме реквизитов для их скрытия.
(10)Спасибо за слово доброе 🙂
(11)»2. Путем ручного указания (двойным кликом в правом столбце дерева метаданных ) объектов, которые нужно будет вывести в графическую схему. Для вывода на схему используем кнопку «Обновить».»
Либо вручную, либо через окно связей набираем необходимый набор метаобъектов и выводим сразу все. На больших конфигурациях обновление схемы занимет некоторое время, при этом если комп не очень шустрый перетаскивать по одному объекту начинает несколько нервировать — сделал вывод группой
(12)Да, такое уже есть в планах — настроить для объекта вывод необходимых реквизитов: только ссылочные типы (исключить скалярные), только имеющие активные (выведенные) линии связи для текущей схемы. В принципе можно сделать и просто список реквизитов, подлежащих отображению.
В принципе можно сделать и просто список реквизитов, подлежащих отображению.
+1. Есть таблицы с огромным количеством реквизитов, а в схеме актуальны только несколько. Типизация отображаемых по виду, имхо, не сильно нужна — в зависимости от смысла схемы мы можем показывать те или иные сочетания ссылочных и числовых полей. Пару ссылок и «Сумма», к примеру. В другой схеме будет тот же регистр, но другая пара ссылок и «СуммаДругая». И т.п.
Хм проблемка.
Перетащил справочник «Банки», поудалял «лишние» реквизиты, далее добавил «Банковские счета». И обработка добавила еще оди квадратик «Банки», поверх уже существующего, со всеми реквизитами. Итого получился перекос при наложении.
(15)Хм. Что за конфигурация? я на бухгалтерии не смог воспроизвести ситуацию — у меня просто обновился квадратик банки, востановив все реквизиты обратно. Размер квадратика, правда, остался прежним (маленьким) соответственно перекос в картинке, но второго квадратика Банки не появилось.
Интерактивное удаление реквизита я не отрабатывал. В принципе, поймать факт удаления ревизита можно. Там выше было предложение, выбирать реквизиты для отображения. Наверное так и зделаю — в случае интерактивного удаления реквизита, будет сниматься отметка необходимости вывода на схему
(16) Это делал в КА
1С:Предприятие 8.2 (8.2.14.537)
попробовал в БП 2
вот что плучилось
(17)Ну собственно говоря я об этом и говорил — обновление схемы привело к тому, что «Банки» перезаполнились всеми реквизитами, но размер блока ВыборВарианта остался без изменений. Буду доделывать когда, обработаю эту ситуацию.
То же хотел было написать «visio» для 1С. Вот только после изучения схем бизнес процессов пришел к выводу, что для отображения лучше использовать поле хтмл документа + vml.
(20)Очень слабо представляю что такое vml (иными словами — только что гуглил), да и в целом с веб-программированием сильно не дружу — насколько понимаю интерактивность там либо невозможна, либо танцы с бубном редкостные будут. Опять же практически всю графическую работу берет на себя графическая схема и не приходится рассчитывать координаты для каждого реквизита и последующей группировки, построение связей тоже «на плечах» граф схемы. Еще смущает «VML пока поддерживается лишь немногими программами, среди которых Internet Explorer 5.0+ и Microsoft Office 2000+.» © Википедия — информация, судя по всему сильно устарела, но неприятный след оставила 🙂
Но может, конечно, в силу мелких познаний vml, я кругом и не прав.
Интересная задумка.
а планируется ли дальнейшее развитие?
интересная вещица…..хотелось бы проверить на деле…может поможет в чем инбудь
(23)Да. Со временем туго, но буду стараться.
(21) VML — это язык разметки. Его свободный аналог SVG. Вот только VML IE поддерживает, а SVG нет. Из-за итеративности я как раз и предпочел его графической схеме. Просто, сейчас реально не до проектов для себя.
Интересная задумка, попробую на 8.2, хотя сейсас установленна только 8.1.
Полезная вещь.
Хорошая вещь. Опечатки в справке поправьте и было бы неплохо:
— добавить поиск(при вводе текста) в дереве метаданных
— чтобы при добавлении нового элемента НЕ перестраивались старые, т.к. в старых блоках может быть что-то удалено
Хорошая разработка
(29)Добавил в ТОДО Лист
интересная идея!
А не встречали графическое представление связей по тексту модулей, а не структуре метаданных? типа кто кого дергает, от каких функций/общих модулей зависит и тд?
0, сделайте пожалуйста возможность вывода в схему ТОЛЬКО документа/справочника, без реквизитов и прочего.
зачетная вещица, а то надоели все эти записи на листочках
Спасибо. Намного проще стало обозревать базу…..
Да было бы замечательно что бы только объекты выводились (опционально конечно же) без реквизитов…
Поюзал данную обработку. Отличная штука, очень понравилась. Спасибо автору!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Думал свою сделать, да вот тут на сабж наткнулся
попробую на 8.2
Набрать бы денег, чтобы стянуть (
Интересная программа, пригодится)
Интересная обработка посмотрим, может и пригодится в работе.
Спасибо, полезная штука
представлять структуру БД в виде связанных табличек — это то, что так не хватало мне для сопровождения сторонних разработок и ‘освежать’ в памяти свои, спасибо
Ок… спасибо! Отличная штука!
Огромное спасибо! Однозначно «+».
Только я было намылился сделать графическую схему отображения связей объектов… а ты уже .. сделал…. блин((
ну и ладно))
однозначно — это весьма полезная вещь с точки зрения анализа физической модели и взаимосвязей..
в последнее время приходится много возиться в отраслевых решениях.. написанных.. далеко не лучшим образом. как раз с точки зрения связей объектов…. и вспомнилас СУБД аксцесса!!! Ведь куда более простая вещь, в плане конструкторов всяких и тп, но и там можно вывести схему и в ней самому натянуть связи, при чем установив их вид отношений…
вобщем. зачет).. но скорее всего буду порбовать допиливать под себя.
ЗЫ:
Смотрю код…На мой взгляд, есть весьма отрицательные моменты в том как вы испольуете метаданные…
Но комментарии готов давать только лишь с вашего позволения ))
Писец, аффтар ты велик!
Молимся на тебя о великий и могучий
(48) ylyas, вообще то я только учусь программировать 😉 (имею ввиду — проектов на снеговике у меня нет)
Так что буду рад любым комментариям. Разумеется, если они по теме 🙂
Итак — что не так я делаю с МД?
есть такая тема… что обращение к мд- по времени это самая затратная хрень
но есть некий компромисс… который нужно помнить…
если есть возможность, то к метаданным какого либо объекта стоит обращаться не через метаданные.объект…..
а — ссылкаНаОбъект.Метаданные()- работает значительно быстрее.
это то что я щас вспомнил…. теперь нужно вновь в код глядеть.. что там я такого нашел ))
ЗЫ: почти сделал свой вариант дееспособный из вашей обработки, как и хотел…
не могу решить одну проблему- линии не всегда выходят из точек,а порой «глядят» в противоположную сторону, пока на графическом поле не передернешь само визуальное представление объекта. тогда линия сама встает на место.
возможно косяк самой графической схемы…
Если пользователь ИТ-специалист, или профессионал в области бизнеса, или любой другой специалист, которому нужно наглядно представлять в виде диаграмм и анализировать сложную информацию, системы и процессы, а также обмениваться такой информацией с коллегами, тогда поможет самоучитель TeachPro Microsoft Visio 2007. Он предназначен для обучения работе с программой Microsoft Office Visio Professional 2007, которая дает возможность все вышеперечисленное осуществить.
С помощью самоучителя можно научиться пользоваться широким набором диаграмм, схем бизнес-процессов, сетевых диаграмм, диаграмм документооборота, моделей баз данных, схем программного обеспечения и других типов диаграмм для визуального документирования — с той целью, чтобы разрабатывать бизнес-процессы и системы и разбираться в их состоянии.
Каждая из лекций самоучителя — это озвученный видеоряд, демонстрирующий работу с программой. То, что можно и видеть, и слышать объяснение темы лекции, намного облегчает ее понимание. Кроме того, многочисленные контрольные вопросы и тестовые задания позволят вам проверить свои знания.
Программная оболочка диска предоставляет множество сервисных услуг: это удобная навигация по курсу при помощи многоуровневого оглавления, навигация по самой лекции, это система закладок, подсказки, поисковая система по ключевым словам, четыре режима проведения занятия и др.
Программный продукт TeachPro Microsoft Office Visio Professional 2007 весной 2008 года в рамках Приоритетного национального проекта «Образование» поставлен во все общеобразовательные учреждения России в составе стандартного (базового) пакета программного обеспечения. В связи с этим данный учебный курс будет полезен широкому кругу учащихся и преподавателей.
(52) ryago2,
а теперь уважаемый, расскажите, как вы будете делать анализ и рисовать диаграммы и связи уже существующей БД реализованной на базе 1С ??? м???
сдается мне что вы казачок засланый.. под названием -бот!!
(51) ylyas, так я там к объектам БД вообще не обращаюсь. Или я не понял в чем мой косяк, что вполне вероятно — пока еще мыслю клюшечными категориями.
Что касается линий — это не косяк системы. В качестве старотового проекта, была взята разработка рисования структуры подчиненности. И блок рисования линий был практически без переделок взят от туда. Но там алгоритм подразумевал вертикальное расположение объектов и изначально 4 точек для линий было всегда достаточно. Так что это мой косяк
(55)
вот .. нашел.
в процедурах раздела
//### Запись конкретных групп Метаобъектов
ЗаписатьСправочники(),записать…..
используется неоднократное обращение вида: Метаданные.ВидОбъектаМетаданных
на мой взгляд правильней было бы в процедуре ввести локальную переменную, чтоб не заниматься разыменовыванием
каждый раз.
еще такой нюанс…
процедура НачатьЗаписьГруппыМетаОбъектов(ГруппаОбъектов….)
параметр группа объектов поставляет для процедуры только количество объектов в группе…
наверно есть смысл сразу передавать только количество а на всю группу метаданных.
В модуле формы обращаться к элементам данной формы можно не прибегая к конструкции «ЭтаФорма».
не очень понял, почему мКонстВысотаВарианта для модуля объекта и формы созданы отдельно??
ну вот такие моменты… может конечно придираюсь…
не хватает записи/чтения данных из БД (можно в регистре СохраненныеНастройки для конфигураций от 1С хранить) в принципе, реализовать не проблема — сделал, НО… при нажатии «Обновить» — схема очищается…
еще бы чтение сохраненной схемы прикрутить, чтобы не очищалась при обновлении