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

15.08.12

Разработка - Универсальные функции

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

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

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

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


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

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

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

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    3554    Abysswalker    9    

45

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

14.05.2025    6572    DeerCven    15    

57

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

21.05.2024    49301    dimanich70    83    

170

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7369    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    61798    atdonya    31    

70

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9177    ke.92@mail.ru    17    

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

А вообще - очень интересная разработка. Там еще по идее можно квадраты строить - они как раз без пиктограмки - и тоже с текстом.
И в этом примере нет еще функций чтобы при щелчке на объекте что то делать - такое вообще возможно ? ну хоть бы сообщение вывести - короче вызвать любую функцию....
14. vladnet 380 10.05.12 16:16 Сейчас в теме
(11) Все прилипает.
Это просто графическая схема, у нее есть стандартные события, смотрите.

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

(13) Вроде бы не разбирал это. За небольшую плату могу разобрать. Если что пишите в личку ну или прямо на мыло info@tunesoft.ru.
12. Barbiturat 01.02.12 10:14 Сейчас в теме
При редактировании схемы вручную (например, удалить элемент схемы кнопкой delete) вываливаеться в дамп. ПОдскажите, может кто сталкивался с такой проблемой и решил ее :)
13. val_yan 10.05.12 14:01 Сейчас в теме
Я правильно понял, что на данный момент, нет возможности отобразить (кодом) такие элементы как "декорация, вложенный процесс, точка обработки"?
15. пользователь 18.09.12 00:00
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация