К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как сделать графическую схему в 1С

Как создать графическую схему в 1С: добавление объекта в конфигураторе, работа с элементами схемы, программное заполнение, вывод на форму и типичные ошибки.

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

В отличие от диаграмм и сводных таблиц, графическая схема не строится автоматически по данным запроса — её элементы размещаются вручную в редакторе или программно через встроенный язык. Это даёт полный контроль над расположением фигур, линий связи и оформлением, но требует понимания структуры объекта и его программного интерфейса.

Материал рассчитан на разработчиков и продвинутых пользователей, которые работают в конфигураторе. Описаны оба подхода: создание схемы как объекта метаданных и программное формирование схемы на форме без добавления объекта в конфигурацию.

Что такое графическая схема и когда она нужна

Графическая схема — это объект, состоящий из элементов двух типов: фигур (прямоугольники, эллипсы, ромбы, декоративные элементы) и соединительных линий между ними. Каждый элемент может иметь наименование, картинку, цвет, всплывающую подсказку и привязку к данным — например, к ссылке на документ или элемент справочника.

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

Важно понимать ограничение: графическая схема — это средство визуализации, а не аналитики. Если нужно показать динамику показателей или сравнить значения, используйте диаграмму или сводную таблицу. Схема оправдана там, где важна топология — взаимное расположение и связи между объектами.

Создание графической схемы в конфигураторе

Откройте конфигуратор и в дереве конфигурации найдите ветку «Общие → Графические схемы». Через контекстное меню выберите «Добавить» и задайте имя объекта, например «МаршрутСогласования». После добавления откроется редактор схемы — рабочая область с сеткой, на которую перетаскиваются элементы из панели инструментов.

На панели элементов доступны фигуры: прямоугольник (процесс), ромб (условие), эллипс (старт/завершение), а также декоративные элементы и линии. Разместите фигуры в нужном порядке, затем соедините их линиями: выберите инструмент «Линия», щёлкните по точке соединения первой фигуры и протяните линию ко второй. Точки соединения подсвечиваются при наведении.

Для каждого элемента в палитре свойств задаются наименование, текст, цвет фона и рамки, картинка, шрифт. Свойство «Имя» элемента важно, если планируется программная работа со схемой — по имени вы сможете находить нужную фигуру в коде и менять её оформление, например подсвечивать текущий этап.

Программное создание схемы на форме

Если схема должна строиться динамически — по данным документа или справочника — удобнее не создавать объект метаданных, а формировать схему программно. Для этого в форме добавьте реквизит с типом «ГрафическаяСхема» и перетащите его в дерево элементов формы, чтобы на форме появилось поле для отображения.

Заполнение схемы выполняется кодом встроенного языка. Типовой фрагмент выглядит так: получаем коллекцию элементов схемы, добавляем фигуру нужного типа, задаём её положение и размер, затем добавляем соединительную линию между двумя фигурами.

// Реквизит формы "Схема" с типом ГрафическаяСхема

Схема.Элементы.Очистить();

ЭлементНачало = Схема.Элементы.Добавить(Тип("ЭлементГрафическойСхемыСтарт"));

ЭлементНачало.Наименование = "Начало";

ЭлементНачало.Лево = 100;

ЭлементНачало.Верх = 20;

ЭлементДействие = Схема.Элементы.Добавить(Тип("ЭлементГрафическойСхемыДействие"));

ЭлементДействие.Наименование = "Согласование";

ЭлементДействие.Лево = 100;

ЭлементДействие.Верх = 80;

Линия = Схема.Элементы.Добавить(Тип("ЭлементГрафическойСхемыЛиния"));

Линия.НачалоЭлемент = ЭлементНачало;

Линия.КонецЭлемент = ЭлементДействие;

Координаты «Лево» и «Верх» задаются в пикселях от левого верхнего угла области схемы. При динамическом построении удобно вычислять координаты в цикле с фиксированным шагом по вертикали или горизонтали — так схема получится ровной даже при переменном числе элементов.

Порядок действий при программном построении
  1. 1
    Добавьте в форму реквизит типа «ГрафическаяСхема» и выведите его элементом формы
  2. 2
    В серверной процедуре очистите коллекцию элементов схемы
  3. 3
    Добавьте фигуры нужных типов, задайте им наименования и координаты
  4. 4
    Соедините фигуры линиями через свойства НачалоЭлемент и КонецЭлемент
  5. 5
    При необходимости задайте цвета и картинки для подсветки состояний
  6. 6
    Откройте форму и проверьте отображение схемы

Подсветка элементов и связь с данными

Практическая ценность схемы раскрывается, когда её внешний вид зависит от данных. Например, в маршруте согласования пройденные этапы можно закрашивать зелёным, текущий — жёлтым, а отклонённый — красным. Для этого в коде перебираются элементы схемы и по данным объекта меняются их свойства «ЦветФона» и «ЦветРамки».

Если схема хранится как объект метаданных, а подсветить нужно конкретный этап, найдите элемент по имени через метод «Найти» коллекции элементов либо перебором с проверкой свойства «Имя». Затем измените оформление. Изменения применяются сразу и видны на форме без дополнительного обновления.

Для интерактивности у поля графической схемы на форме есть события, позволяющие реагировать на выбор элемента пользователем. В обработчике можно определить, по какой фигуре щёлкнули, и открыть связанный документ или показать расшифровку этапа. Это превращает схему из картинки в навигационный инструмент.

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

Вывод схемы в отчёт и на печать

Графическая схема может быть выведена не только на форму, но и в табличный документ — для печати или включения в отчёт. В макете табличного документа добавьте рисунок с типом «Графическая схема» и свяжите его с именованной схемой, либо заполните рисунок программно при формировании отчёта.

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

Типичные ошибки и ограничения

Наиболее частая проблема — накладывающиеся или «уехавшие» элементы при программном построении. Причина почти всегда в жёстко заданных координатах без учёта количества элементов. Используйте вычисляемый шаг и контролируйте максимальные координаты, особенно если число этапов заранее неизвестно.

Вторая группа ошибок связана с линиями: линия не отображается, если не заданы оба свойства — начальный и конечный элементы, либо если фигуры удалены после создания линии. При очистке схемы методом «Очистить» удаляются все элементы сразу, поэтому пересоздавать линии нужно заново вместе с фигурами.

Также помните об ограничениях: графическая схема не поддерживает автоматическую компоновку элементов (автолейаут) — всё позиционирование выполняется вручную или кодом. В тонком и веб-клиенте отображение может незначительно отличаться, поэтому схему стоит проверять во всех используемых клиентах.

Типичные ошибки
01
Жёсткие координаты без расчёта шага — элементы накладываются при изменении числа этапов
02
Линия без указания начального или конечного элемента — связь просто не отображается
03
Поиск элементов по наименованию вместо имени — код ломается при переименовании надписи
04
Недостаточный размер области рисунка в табличном документе — схема обрезается при печати
05
Изменение типовой схемы в конфигурации на поддержке — сложности при обновлении
Контрольные точки

Как проверить результат

Отображение всех фигур
Норма

Все элементы видны целиком, без наложений и обрезки

Тревожный признак

Часть фигур выходит за границы или перекрывает другие

Соединительные линии
Норма

Каждая линия соединяет две фигуры и двигается вместе с ними

Тревожный признак

Линия висит в воздухе или исчезла после перестроения

Подсветка по данным
Норма

Цвета элементов соответствуют состоянию объекта

Тревожный признак

Подсветка не меняется при изменении данных

FAQ

Можно ли создать графическую схему без конфигуратора, в режиме «Предприятие»?

Нет, добавление объекта метаданных и настройка формы выполняются только в конфигураторе. Пользователь в режиме «Предприятие» может лишь просматривать и использовать уже готовую схему. Для разовой визуализации без доработки конфигурации подойдёт внешняя обработка с программно построенной схемой.

Чем графическая схема отличается от диаграммы Ганта?

Диаграмма Ганта отображает интервалы во времени и строится по данным автоматически. Графическая схема показывает произвольные фигуры и связи, а её элементы размещаются вручную или кодом. Для планирования по времени выбирайте диаграмму Ганта, для топологии и маршрутов — схему.

Как сохранить схему в файл или картинку?

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

Почему схема выглядит иначе в веб-клиенте?

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

Можно ли сделать автоматическое выравнивание элементов?

Встроенного механизма автокомпоновки у графической схемы нет. Выравнивание реализуется программно: в цикле каждому элементу присваиваются координаты, вычисленные по формуле от его порядкового номера, шага и отступов.

Как подсветить текущий этап бизнес-процесса на схеме?

Найдите нужный элемент схемы по имени через коллекцию элементов и измените его свойства «ЦветФона» и «ЦветРамки» в соответствии со статусом точки маршрута. Повторите для остальных этапов, задавая разные цвета пройденным, текущим и будущим шагам.

Итог

Что важно запомнить

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