ЭлементГрафическойСхемыДекоративнаяЛиния

Типы · GraphicalSchemaItemDecorativeLine

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

Полное описание, параметры и ограничения

ЭлементГрафическойСхемыДекоративнаяЛиния (GraphicalSchemaItemDecorativeLine)

ЭлементГрафическойСхемыДекоративнаяЛиния (GraphicalSchemaItemDecorativeLine)

Доступен, начиная с версии 8.1.

Свойства:
Имя (Name)
КонецВариант (EndCase)
КонецВерх (EndTop)
КонецЛево (EndLeft)
КонецСторона (EndSide)
КонецЭлемент (EndItem)
Линия (Line)
Наименование (Description)
НачалоВариант (BeginCase)
НачалоВерх (BeginTop)
НачалоЛево (BeginLeft)
НачалоСторона (BeginSide)
НачалоЭлемент (BeginItem)
Подсказка (ToolTip)
ПоложениеТекста (TextLocation)
СтрелкаКонца (EndArrow)
СтрелкаНачала (BeginArrow)
ЦветЛинии (LineColor)
ЦветТекста (TextColor)
Шрифт (Font)

Описание:

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

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Разобрать декоративную линию отдельно от перехода

Находим линию между двумя пояснениями, задаём её стрелки и подпись. Даже стрелка не превращает эту линию в маршрут исполнения.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.

  7. Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.

  8. Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.

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

  10. Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

  11. В этих упражнениях процесс не записывается и не запускается. Исследуется копия карты маршрута в памяти; печать на физический принтер не вызывается.

  12. В собственную карту УчебныйПроцесс дополнительно добавьте две декорации с исходными наименованиями Начало учебного пояснения и Конец учебного пояснения. Других декораций в этом упражнении не должно быть.

  13. Соедините эти две декорации именно декоративной линией, не соединительной линией маршрута. Оставьте направление от первой ко второй, разместите пояснение вне рабочих стрелок Старт → ПодготовитьКнигу → Финиш. Обновите только свою учебную конфигурацию.

  14. Декорации не являются точками маршрута. Код меняет только полученную карту в памяти, не запускает процесс и не сохраняет оформление в метаданные.

Если Метаданные.БизнесПроцессы.Найти("УчебныйПроцесс") = Неопределено
    Или Метаданные.Задачи.Найти("УчебнаяЗадача") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебные процесс, задачу и карту маршрута";
КонецЕсли;
Процесс = БизнесПроцессы.УчебныйПроцесс.СоздатьБизнесПроцесс();
Схема = Процесс.ПолучитьКартуМаршрута();
Если ТипЗнч(Схема) <> Тип("ГрафическаяСхема") Тогда
    ВызватьИсключение "Учебный процесс не вернул графическую схему";
КонецЕсли;
НачалоПояснения = Неопределено;
КонецПояснения = Неопределено;
Для Каждого Кандидат Из Схема.ЭлементыГрафическойСхемы Цикл
    Если ТипЗнч(Кандидат) <> Тип("ЭлементГрафическойСхемыДекорация") Тогда
        Продолжить;
    КонецЕсли;
    Если Кандидат.Наименование = "Начало учебного пояснения" Тогда
        Если НачалоПояснения <> Неопределено Тогда
            ВызватьИсключение "Повторяется исходная подпись первой собственной декорации";
        КонецЕсли;
        НачалоПояснения = Кандидат;
    КонецЕсли;
    Если Кандидат.Наименование = "Конец учебного пояснения" Тогда
        Если КонецПояснения <> Неопределено Тогда
            ВызватьИсключение "Повторяется исходная подпись второй собственной декорации";
        КонецЕсли;
        КонецПояснения = Кандидат;
    КонецЕсли;
КонецЦикла;
Если НачалоПояснения = Неопределено Или КонецПояснения = Неопределено Тогда
    ВызватьИсключение "Создайте две собственные декорации с указанными исходными подписями";
КонецЕсли;
Указатель = Неопределено;
Для Каждого Кандидат Из Схема.ЭлементыГрафическойСхемы Цикл
    Если ТипЗнч(Кандидат) <> Тип("ЭлементГрафическойСхемыДекоративнаяЛиния") Тогда
        Продолжить;
    КонецЕсли;
    Если Кандидат.НачалоЭлемент = Неопределено Или Кандидат.КонецЭлемент = Неопределено Тогда
        Продолжить;
    КонецЕсли;
    Если ТипЗнч(Кандидат.НачалоЭлемент) <> Тип("ЭлементГрафическойСхемыДекорация")
        Или ТипЗнч(Кандидат.КонецЭлемент) <> Тип("ЭлементГрафическойСхемыДекорация") Тогда
        Продолжить;
    КонецЕсли;
    Если Кандидат.НачалоЭлемент.Имя = НачалоПояснения.Имя И Кандидат.КонецЭлемент.Имя = КонецПояснения.Имя Тогда
        Если Указатель <> Неопределено Тогда
            ВызватьИсключение "Повторяется собственная декоративная линия";
        КонецЕсли;
        Указатель = Кандидат;
    КонецЕсли;
КонецЦикла;
Если Указатель = Неопределено Тогда
    ВызватьИсключение "Не найдена декоративная линия между собственными пояснениями";
КонецЕсли;
Указатель.Наименование = "Только учебное пояснение";
Указатель.Подсказка = "Не соединительная линия маршрута";
Указатель.ПоложениеТекста = ПоложениеТекстаСоединительнойЛинии.СерединаЛинии;
Указатель.СтрелкаНачала = СтильСтрелки.Нет;
Указатель.СтрелкаКонца = СтильСтрелки.Заполненная;
Указатель.ЦветЛинии = Новый Цвет(100, 120, 140);
Указатель.ЦветТекста = Новый Цвет(24, 40, 60);
Указатель.Шрифт = Новый Шрифт(Указатель.Шрифт, , 10, Ложь);
Сообщить(Указатель.Наименование = "Только учебное пояснение");
Сообщить(Указатель.СтрелкаНачала = СтильСтрелки.Нет);
Сообщить(Указатель.СтрелкаКонца = СтильСтрелки.Заполненная);
Сообщить(Указатель.ПоложениеТекста = ПоложениеТекстаСоединительнойЛинии.СерединаЛинии);
Сообщить(Указатель.Шрифт.Размер = 10);
Сообщить(СтрШаблон("Линия %1: начало %2/%3, конец %4/%5", Указатель.Имя, Указатель.НачалоЛево, Указатель.НачалоВерх, Указатель.КонецЛево, Указатель.КонецВерх));
Сообщить("Стороны: " + Строка(Указатель.НачалоСторона) + " / " + Строка(Указатель.КонецСторона));
Сообщить("Варианты: " + Строка(Указатель.НачалоВариант) + " / " + Строка(Указатель.КонецВариант));
Сообщить("Параметры линии: " + Строка(Указатель.Линия.ТипЛинии) + " / " + Строка(Указатель.Линия.Толщина));

Разбор по шагам

  1. Выбираем только тип ДекоративнаяЛиния, затем проверяем наличие и типы обоих концов.

  2. Связь ищется по внутренним именам двух собственных декораций, не по похожей подписи линии.

  3. Стрелки, положение текста, цвета и шрифт доступны для оформления. СтрелкаКонца Заполненная не меняет тип линии.

  4. Геометрия концов, стороны, варианты и Линия readonly. Здесь концы — декорации, поэтому варианты выводятся лишь диагностически.

  5. Декоративная линия помогает читать схему, но не создаёт переход бизнес-процесса.

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

  1. Пять сообщений Истина и четыре диагностические строки.

  2. В карте метаданных рабочие соединения Старт → ПодготовитьКнигу → Финиш не переподключаются.

Ожидаемый результат

Показана декоративная связь с настоящими концами и явным отличием от маршрутизации.

На что обратить внимание

  1. Не ищите переход выполнения по наличию визуальной стрелки: проверяйте тип элемента.

  2. Конкретные координаты зависят от собственного чертежа, они не зашиты в проверках.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.