Рассмотрим распространенную задачу для IT-обслуживающих организаций: в информационной базе 1С ведется подробный учет компьютерного, торгового и сетевого оборудования клиентов (маршрутизаторы, коммутаторы, ПК, кассовые аппараты, видеокамеры). Руководителям и специалистам требуется видеть эти данные не в виде сухих таблиц и реестров, а наглядной динамической карте-схеме с топологией связей, масштабированием и возможностью раскрытия отдельного узла до его составных элементов.
Выясним, какие архитектурные подходы и механизмы платформы 1С позволяют реализовать такой функционал.
Проанализируем наиболее гибкий и функциональный способ решения задачи — создание веб-компонента на базе элемента формы ПолеHTMLДокумента с интеграцией специализированных JavaScript-библиотек визуализации графов (например, vis-network, Cytoscape.js, GoJS или ECharts).
Преимущества данного решения:
Разберем по шагам, как организуется связка данных 1С и интерактивной схемы в элементе формы:
ВыполнитьСкрипт() элемента формы ПолеHTMLДокумента.window.1c.postMessage. В форме 1С данное событие обрабатывается в назначенной процедуре-обработчике.Посмотрим, как настроить отображение схемы в изолированной локальной сети без доступа к сети Интернет. Для этого JS-библиотека и сопутствующие файлы CSS сохраняются непосредственно в конфигурации 1С в виде двоичных макетов или текстовых документов. В момент открытия формы 1С считывает эти макеты и подставляет их содержимое прямо в формируемый HTML-код страницы.
Рассмотрим другие способы построения схем и их особенности:
В платформе 1С присутствует элемент ГрафическаяСхема. Однако данный объект разработан преимущественно для визуализации простых бизнес-процессов и алгоритмов. При попытке построить топологию сети на сотни устройств разработчик столкнется с серьезными ограничениями:
Еще один вариант — программное формирование из 1С вектора в формате SVG или генерация текстового описания связей на специализированных языках (например, DOT для Graphviz, PlantUML или Mermaid). Из 1С передается готовый текст описания связей, а в ПолеHTMLДокумента лёгкий конвертер рендерит интерактивную векторную картинку.
Если инфраструктура клиентов насчитывает тысячи устройств и требует постоянного опроса по протоколу SNMP, топологию сети логичнее строить во внешних специализированных системах инвентаризации и мониторинга (NetBox, Zabbix), а в 1С получать готовую карту или обмениваться данными через REST API.
Проанализируем ситуацию, когда у клиентов суммарно используются тысячи единиц техники. Одновременное построение огромного графа вызовет зависание интерфейса. Для решения этой проблемы рекомендуется применять динамическую (ленивую) загрузку: