gifts2017

Графическая схема. Программное создание и изменение.

Опубликовал Владимир Пушин (vladnet) в раздел Программирование - Практика программирования

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

Графическая схема - это по сути обычный компаунд файл, который можно формировать самому.

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

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


	 мОбъектГрафическаяСхема=ПолучитьСтруктуруГрафическойСхемы();
мОбъектГрафическаяСхема.ШагСеткиПоГоризонтали=10;
мОбъектГрафическаяСхема.ШагСеткиПоВертикали=15;

лОбъектСхемы=ДобавитьТочкуДействия(мОбъектГрафическаяСхема, "Тест", 10, 10, 20, 20);
лОбъектСхемы.СтруктураОтрисовки.ТипЦветаФона=2;
лОбъектСхемы.СтруктураОтрисовки.ЦветФона=12312;
лОбъектСхемы.ПояснениеДействия="Пояснение";
лОбъектСхемы.СтруктураЛинии.ТолщинаЛинии=3;

лЛиния=ДобавитьЛинию(мОбъектГрафическаяСхема);
лЛиния.СтруктураИмени.Идентификатор="Линия1";
лЛиния.РазмещатьНаименованиеВСерединеЛинии=Истина;
лТочка1=ПолучитьТочкуТочкиДействия(лОбъектСхемы, "Право");
лТочка2=ПолучитьТочкуТочкиДействия(пОбъектСхемы2, "Право");
лТочка2.Лево=лТочка2.Лево+100;
лЛиния.Точки.Добавить(лТочка1);
лЛиния.Точки.Добавить(лТочка2);
лЛиния.ОткудаВыходитЛиния=3;
лЛиния.КудаВходитЛиния=0;

ОтобразитьГрафическуюСхему(мОбъектГрафическаяСхема, ЭлементыФормы.ПолеГрафическойСхемы);

Сами функции для работы со схемой смотрите в данном примере http://infostart.ru/projects/4403/

В данном примере реализованы не все возможности для работы со схемой. Полный разбор схемы + дополнительный объект для построения схемы на объектном уровне есть в данной разработке: http://infostart.ru/public/144273/

Возможна доработка возможностей и расширенное консультирование на коммерческой основе.

Данная технология активно используется в конфигурация для Учета в отделе ИТ

Тэги: Программное редактирование Графической схемы

См. также

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

Комментарии

1. Владимир Пушин (vladnet) 11.06.09 14:57
Если кто подскажет как же сюда все таки правильно вставлять ссылки и код, поделитесь.
4. Владимир Пушин (vladnet) 13.06.09 18:17
(3) Да в общем то и так можно разобрать что там написано. Анализировал так: сперва разбирал в дерево, потом изменял параметры потом собирал. 1с переодически вываливалась. Много чего кстати осталось неразобранным.
5. Максим (macana) 28.07.11 09:59
Мож кто знает как сохранить схему в графическом виде,
виртуальный принтер не интересует, может кто на компонент ActivX натыкался
6. Максим (macana) 28.07.11 17:17
7. Юрий Лазаренко (TitanLuchs) 29.09.11 17:18
Не могу скачать файл.
Функции по разборке и сборке схемы используют только язык 1С или применяется внешняя компонента?
8. Владимир Пушин (vladnet) 04.10.11 13:04
Используется только 1с. Сейчас посмотрю что там по файлу.
9. Владимир Пушин (vladnet) 04.10.11 13:08
10. Nata Varenik (o_jumi) 13.10.11 15:49
спасибо автору) полезная штука)
11. Дандронтий Крузенштерн (dandrontiy) 21.12.11 16:41
Да уж. Труд титанический.
У меня такой вопрос - а в блоках можно избавиться от головы этой (пиктограмки) и шапки ? она совершенно мне не нужна. Еще я так понял, что при таком программном построении линии не прилепают к тем объектам к которым их проводили. может есть способ привязать ?

А вообще - очень интересная разработка. Там еще по идее можно квадраты строить - они как раз без пиктограмки - и тоже с текстом.
И в этом примере нет еще функций чтобы при щелчке на объекте что то делать - такое вообще возможно ? ну хоть бы сообщение вывести - короче вызвать любую функцию....
12. Вячеслав Иванов (Barbiturat) 01.02.12 10:14
При редактировании схемы вручную (например, удалить элемент схемы кнопкой delete) вываливаеться в дамп. ПОдскажите, может кто сталкивался с такой проблемой и решил ее :)
13. serj (val_yan) 10.05.12 14:01
Я правильно понял, что на данный момент, нет возможности отобразить (кодом) такие элементы как "декорация, вложенный процесс, точка обработки"?
14. Владимир Пушин (vladnet) 10.05.12 16:16
(11) Все прилипает.
Это просто графическая схема, у нее есть стандартные события, смотрите.

(12) Была на каком то релизе проблема, вроде что то делал и решилось. Надо опять пересматривать что там изменилось. Хотя у меня в моих конфигурациях все работает.

(13) Вроде бы не разбирал это. За небольшую плату могу разобрать. Если что пишите в личку ну или прямо на мыло info@tunesoft.ru.
15. Игорь Steelvan (Steelvan) 18.09.12 00:00
Для более функционального рисования бизнес процессов в 1С подходит программа ОптимаСофт:Схемы.
На их главной странице www.схемы1С.рф лежат картинки с примерами.

Можно использовать как перетаскивание, так и программное изменение и анализ.
Схема создается прямо в 1С и хранится в формате xml.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа