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

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/

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

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

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

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

См. также

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

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

14.05.2025    4091    DeerCven    9    

49

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

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

21.05.2024    43125    dimanich70    83    

158

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

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

1 стартмани

18.03.2024    6360    6    John_d    12    

58

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

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

12.02.2024    52662    atdonya    31    

67

Универсальные функции Программист 1С v8.3 Бесплатно (free)

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

30.11.2023    8118    ke.92@mail.ru    17    

67

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    21668    YA_418728146    8    

174
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vladnet 381 11.06.09 14:57 Сейчас в теме
Если кто подскажет как же сюда все таки правильно вставлять ссылки и код, поделитесь.
2. пользователь 13.06.09 18:03
Сообщение было скрыто модератором.
...
3. пользователь 13.06.09 18:05
Сообщение было скрыто модератором.
...
4. vladnet 381 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 603 29.09.11 17:18 Сейчас в теме
Не могу скачать файл.
Функции по разборке и сборке схемы используют только язык 1С или применяется внешняя компонента?
8. vladnet 381 04.10.11 13:04 Сейчас в теме
Используется только 1с. Сейчас посмотрю что там по файлу.
9. vladnet 381 04.10.11 13:08 Сейчас в теме
10. o_jumi 13.10.11 15:49 Сейчас в теме
спасибо автору) полезная штука)
11. dandrontiy 21.12.11 16:41 Сейчас в теме
Да уж. Труд титанический.
У меня такой вопрос - а в блоках можно избавиться от головы этой (пиктограмки) и шапки ? она совершенно мне не нужна. Еще я так понял, что при таком программном построении линии не прилепают к тем объектам к которым их проводили. может есть способ привязать ?

А вообще - очень интересная разработка. Там еще по идее можно квадраты строить - они как раз без пиктограмки - и тоже с текстом.
И в этом примере нет еще функций чтобы при щелчке на объекте что то делать - такое вообще возможно ? ну хоть бы сообщение вывести - короче вызвать любую функцию....
14. vladnet 381 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
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация