Работа с графической схемой в объектной модели DOM

04.06.19

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

Пример кода для работы с графической схемой в объектной модели DOM, платформа 8.3.12.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Пример конфигурации
.cf 21,63Kb ver:1
18 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

За основу взята статья Виталия Барилко //infostart.ru/public/336564/

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

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

 
 Общий модуль "УниверсальныеКартыМаршрутовКлиентСервер"

 

Хранить карту маршрута будем в справочнике БизнесПроцессы в реквизите КартаМаршрутаXML.

 

Форма элемента справочника имеет следующую структуру: 

 
Модуль формы элемента справочника

 

Пример работы:

 

В файлах приложил демо конфигурацию примера.

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

графическая схема DOM пример кода

См. также

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

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

14.05.2025    5407    DeerCven    15    

57

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

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

21.05.2024    46316    dimanich70    83    

164

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

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

1 стартмани

18.03.2024    6845    6    John_d    13    

59

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

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

12.02.2024    57359    atdonya    31    

68

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

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

30.11.2023    8610    ke.92@mail.ru    17    

68

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

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

28.08.2023    22763    YA_418728146    8    

174
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4886 04.06.19 14:20 Сейчас в теме
Можно подробнее? Вы динамически строите граф.схему с помощью DOM?
2. botokash 400 04.06.19 14:31 Сейчас в теме
(1) Построение схемы происходит штатными командами платформы для работы с графической схемой. С помощью DOM я лишь анализирую состав схемы, могу получать все ее элементы и связи, а так же сохранять графическую схему в XML строку и в обратную сторону получать объект графической схемы из XML строки.
3. Yashazz 4886 04.06.19 17:01 Сейчас в теме
1. Ценность идеи исходной статьи - в возможности модифицировать схему. Платформа просто не имеет штатных команд такого рода. Какие команды вы имеете в виду?
2. Зачем использовать DOM для чтения состава, если как раз это платформа позволяет сделать удобно и просто? Изврата ради?
sasha777666; +1 Ответить
4. botokash 400 04.06.19 18:55 Сейчас в теме
(3) По первому вопросу конкретизируйте, о каких командах вы говорите? Я говорил о стандартной командной панели, которая генерируется платформой для элемента формы графической схемы. Модифицируйте ими схему как хотите.
По второму вопросу, DOM позволяет как и читать, так и менять схему программно, причем одновременно и без переключения на другой объект. При этом прочитать данных об элементах схемы в DOM можно гораздо больше. Никакого изврата тут не вижу.
7. Yashazz 4886 05.06.19 11:05 Сейчас в теме
(4) Насчёт команд понял, ценность этого фрагмента стремится к нулю, т.к. это штатный инструмент платформы и вставить его куда надо - минутное дело. Что умеет DOM, я прекрасно знаю; я вот пытаюсь понять - вы-то его применяете для модификации схемы или только для чтения?
sasha777666; +1 Ответить
8. botokash 400 05.06.19 11:24 Сейчас в теме
(7) Пример модификации есть, обратите внимание на приложенный код. Я показываю пример работы с графической схемой полностью через DOM, как чтения, так и модификации. Как программно добавить элементы на схему - ссылка указана, разобраться в коде на пол часа работы.
10. Yashazz 4886 05.06.19 13:05 Сейчас в теме
(8) Уважаемый, я о том, как добавлять программно, задолго до вас несколько готовых разработок сделал)) Которые кстати сказать на ИС лежат.

В приложенном документе я вижу 2 вызова функций из неведомого модуля, а что там и как - я не телепат, чтоб понять. Ну хорошо, значит, меняете схему через DOM. Ну что ж, как вариант. Я в каком-то из решений года 2-3 назад тоже так делал, и должен сказать, что бывают случаи, когда обратное построение схемы из xml, валидного с точки зрения DOM, не прокатывает. Не жрёт его сериализатор 1С почему-то. Поэтому будьте внимательны и не позиционируйте решение как универсальное, там случаются подводные камни, особенно с элементом "Точка выбора варианта".
sasha777666; +1 Ответить
11. botokash 400 05.06.19 13:42 Сейчас в теме
(10) "Неведомый" модуль так же приложен в статье кодом, без скачивания) Ни в коем разе не позиционирую свою статью как готовое решение. По факту есть лишь заготовка общего модуля и пару примеров работы с ним. Как мне кажется, тому кто ищет конкретный ответ на вопрос как, этого должно хватить что бы понять принцип и уже самому создавать свои нетленки)
9. botokash 400 05.06.19 11:35 Сейчас в теме
(8) Конкретизирую про модификацию, имеем исходную графическую схему "ГрафическаяСхема"
// 1. Получили ДокументDOM
ДокументDOM = УниверсальныеКартыМаршрутовКлиентСервер.ПолучитьDOMГрафическойСхемы(ГрафическаяСхема); // 
// 2. ...
// свой код чтения и модификации
// 3. получаем обратно графическую схему из ДокументDOM, PROFIT!!!
ГрафическаяСхема = УниверсальныеКартыМаршрутовКлиентСервер.ПолучитьГрафическуюСхемуИзDOM(ДокументDOM);
5. arsvlg 05.06.19 10:10 Сейчас в теме
Интересно. Спасибо за статью. Попробую.
Единственное, нужно поправить скриншот структуры справочника. В табличной части отображены не все реквизиты.
6. botokash 400 05.06.19 10:38 Сейчас в теме
(5) "ТипЭлементаПредставление" и "Наименование" являются реквизитами формы, добавлены к табличной части. Обратите внимание на их цвет в дереве реквизитов формы. Так что скриншот структуры справочника верный)
12. xioxao 05.06.19 21:48 Сейчас в теме
(6) Блин супер интересная разработка... Жаль что не хватает стартмани скачать) как наколочу обязательно зацеплю и потестю) Автору респект, за нестандартные решения, механизмами 1с)
13. botokash 400 06.06.19 03:26 Сейчас в теме
(12) В публикации весь код приведен полностью, даже скачивать не надо. Но если так нужна конфигурация, напишите в личку, отправлю на почту.
14. ntemny 63 06.06.19 14:53 Сейчас в теме
Тему с подменой карты маршрута БП не разовьете? Не совсем понял, как это можно сделать у стандартных БП платформы.
sasha777666; +1 Ответить
15. botokash 400 06.06.19 16:58 Сейчас в теме
(14) Когда получится что-то рабочее - обязательно поделюсь, конечно.
16. ntemny 63 06.06.19 18:13 Сейчас в теме
(15)Ну хотя бы в каком направлении копать напишите. Как у БП можно поменять карту маршрута не в конфигураторе?
17. botokash 400 07.06.19 12:40 Сейчас в теме
(16) В том то и дело, что нельзя. Буду пытаться делать некий имитатор, который будет создавать БП, но переход по карте маршрута обрабатывать самостоятельно.
18. Бубузяка 62 09.06.19 16:50 Сейчас в теме
Автору, спасибо. Это то, что мне давно было нужно! Видимо, фантазии и знаний о ДокументеДОМ не хватало. Много информации для применения на практике. Материал статьи (картинки и код) достаточен для повторения и последующего изучения.
19. botokash 400 09.06.19 16:58 Сейчас в теме
(18) Большое спасибо, рад что кому-то полезно.
20. Maystrenko_Ivan 18.07.23 21:01 Сейчас в теме
Добрый день.
Пришлите, пожалуйста, исходный код.
Попытался полностью восстановить исходную разработку, но, на этапе сохранения\записи что-то напутал. Происходит очистка полей...
21. botokash 400 19.07.23 05:50 Сейчас в теме
22. men260181 22 16.04.24 06:12 Сейчас в теме
Очень классный пример работы со схемой! Ищу способ выстраивания точек маршрута по порядку от старта до завершения.
Хотел уточнить у автора: в объекте Dom они случайно не в порядке следования маршрута, может платформа при сериализации их поставила в порядке следования точек?
Для отправки сообщения требуется регистрация/авторизация