gifts2017

Редактор графической схемы

Опубликовал Сергей (serzalx) в раздел Управление - Бизнес-процессы

Обработка для редактирования графической схемы.

Данная обработка является редактором графической схемы и в отличии от типового редактора файлов 1С и встроенного в платформу механизма редактирования графической схемы, все действия с объектами схемы осуществяются программно.

Функции этой обработки можно использовать для программной работы с графической схемой. 

Обработка позволяет сохранять графическую схему в файл.

 

Описание

 

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

Графическая схема является файлом, который выглядит примерно так:

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

 

Опишу некоторые элементы:

Тип элемента показывает какой тип элемента сейчас будет описан. С этого параметра начинается описание элемента в файле графической схемы.
Тип элемента это число от 0 до 10, которое показывает элемент какого типа будет размещен на схеме.

0 - Декорация
1 - Линия
2 - Старт
3 - Завершение
4 - Условие
5 - Действие
6 - Выбор варианта
7 - Точка разделения
8 - Точка слияния
9 - Обработка
10 - Вложенный бизнес процесс

Заголовок это надпись на элементе

Имя - Уникальное имя на схеме

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

Число точек показывает из скольки точек состоит элемент графической схемы.

Координаты точек это координаты точек объекта, перечисленные по часовой.

 

 

Почти все элементы имеют схожую структуру и различаются в основном по типу элемента, геометрической форме.

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

Особенности структуры линии:

С указания типа элемента начинается описание структуры элемента в файле графической схемы. Элемент начало показывает номер элемента, из которого линия выходит, а элемент конец - номер элемента на который линия указывает. Декоративная линия показывает является ли линия декоративной или соединительной. Соединительная линия обязательно соединяет два элемент, а декоративная линия может как соединять элементы, так и "болтаться в воздухе".

0 - Соединительная линия

1 - Декоративная линия

Линия может иметь произвольное число точек и их количество указывается в файле перед перечислением координат точек линии. Грань выхода показывает грань из которой выходит линия, грань входа показывает грань в которую линия входит. Грани почти всех элементов пронумерованы от 1 до 4, кроме элемента "Выбор варианта". 

 

Элемент выбор варианта имеет особенность: из одной грани может выходить несколько линий. Это зависит от числа вариантов выбора. Нумерация точек, из которых линия выходит отличается:

Также в структуре элемента "Выбор варианта" описываются варианты:

 

 

Таким образом поставляя эти параметры в текст файла графической схемы можно осуществлять работу с графической схемой.


Конфигурация отличается от обработки тем, что в конфигурации есть картинки как в типовой панели. 

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

Наименование Файл Версия Размер
РедакторГрафическойСхемы.epf 37
.epf 14,38Kb
22.01.15
37
.epf 14,38Kb Скачать
РедакторГрафическойСхемы.cf 41
.cf 43,30Kb
22.01.15
41
.cf 43,30Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей Чухланцев (AvalonE2008) 23.01.15 11:01
Спасибо! Давно хотелось дать пользователям возможность удобно редактировать бзнеспроцессы. Буду на нее натягивать логику ДО.
2. Алекс Ю (AlexO) 23.01.15 11:06
(1) AvalonE2008,
Давно хотелось дать пользователям возможность удобно редактировать бзнеспроцессы
Вообще, здесь программное изменение конфигурационного файла, содержащего описание бизнес-процесса. Каким образом вы представляете, что пользователи будут в реальном времени редактировать бизнес-процессы?
(0) за разбор конфигурационного файла - плюс. Это действительно нужно.
А программно чиать-писать ресурсный файл, тем более бизнес-процессов... Сложно представить задачи, где присутствуют динамические БП.
3. Валерий Дяченко (davealone) 23.01.15 14:50
Программное редактирование схем можно применить не только для бизнес-процессов. Например, Управление генеалогическим древом
А редактирование бизнес-процессов пользователями можно посмотреть в конфигурации "Управление процессами" от ПитерСофта здесь В этой конфигурации как раз реализован подход моделирования новых бизнес-процессов в предприятии.
4. Сергей Марусов (Marsel) 25.01.15 19:16
Графическая схема отлично сериализуется / десериализуется в/их xml. Не нужно гадать что скрывается за тем или иным параметром конфигурационного файла :)
В сериализованной в xml схеме все имеет довольно говорящие наименования элементов. И программная работа с xml выглядит более прозрачно.
DrAku1a; stal76; gigapevt; so-quest; smit1c; SemenovaMarinaV; Aleksey.Bochkov; +7 Ответить 1
5. Марина Семёнова (SemenovaMarinaV) 27.01.15 13:46
6. ivanov660 ivanov660 (ivanov660) 29.01.15 22:55
(4) Marsel, (4) Marsel, для обычного приложения без проблем сам пробовал да и на инфостарте пример был, Но для управляемого приложения сериализовать тип "ГрафическаяСхема" у меня не получилось. Если это так просто делается, то приведите пример.
7. Сергей Марусов (Marsel) 10.02.15 22:00
(6) ivanov660,

Для управляемого режима в общем-то никаких отличий особенных нет.

&НаКлиенте
Процедура СериализоватьВXML(Команда)
	
    ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку("");
	СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Схема);
	
	СериализованнаяСхема = ЗаписьXML.Закрыть();
	
КонецПроцедуры

&НаКлиенте
Процедура ДесериализоватьИзXML(Команда)
	
	Попытка
	
		ЧтениеXML = Новый ЧтениеXML;
		ЧтениеXML.УстановитьСтроку(СериализованнаяСхема);
		Схема = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
		
	Исключение
		
		Сообщить(ОписаниеОшибки());
		
	КонецПопытки;
	
	
КонецПроцедуры
...Показать Скрыть


Сериализация выдает строку эемента xml, десериализация соответственно из xml готовит графическую схему.

Так же можно посмотреть на методы сериализатора xdto:


СхемаXDTO = СериализаторXDTO.ЗаписатьXDTO(Схема);
	
СхемаНовая = СериализаторXDTO.ПрочитатьXDTO(СхемаXDTO);

...Показать Скрыть


эти методы позволят "работать" со схемой как с объектом
8. Сергей Доронин (factor0) 12.05.15 11:22
Файл скачал, поставил плюсик. Когда разобрался, голос отменил :(

Не работает в 8.3, хотя идея ясна, но не реализована до конца. Много недоработок, в общем сыро.
Автору пожелание добить код до конца. А так не совсем хорошо, не понятный способ перевода структуры в текст, а именно: не все верно, а значит не понято автором (без обид).
Не поленись, проработай хоть формирование линий, там вообще все плохо, как бы и так прокатит. Задумка имеет право на жизнь, дай ей правильное начало :)
9. Михаил Ф. (VIRtUoS) 30.12.15 02:03
Приветствую коллеги! Интересует возможность работы с фигурами в 1С в основном прямоугольными и квадратными, но есть нюансы. Кроме того интересует вхождение фигур в друг друга. Что то типа алгоритма поиска. На текущий момент реализовано на "табличном поле". Есть ли какая то альтернатива?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа