Имя: Пароль:
1C
1С v8
Изменить выделение текущей точки бизнес процесса
0 OnCheck
 
24.08.15
14:29
Доброго времени суток.
Возможно ли изменить выделение текущей точки бизнес процесса? Стандартно красный пунктир.
1 vde69
 
24.08.15
14:31
есть такой объект "декарация"

нарисуй в схеме а том управляй видимостью
2 OnCheck
 
24.08.15
14:32
(1) т.е. обвести на схеме каждую точку?
3 vde69
 
24.08.15
14:34
или можешь менять цвет всего блока

// -----------------------------------------------------------------
// оформление блоков сделки

Функция ПолучитьЦветПоСостояниюБлока (Статус) Экспорт
    Результат = ЦветаСтиля.ЦветСостоянияПассивен;
    
    Если Статус = Перечисления.СостоянияБлоковУчета.ВРаботе Тогда
        Результат = ЦветаСтиля.ЦветСостоянияВРаботе;
        
    ИначеЕсли Статус = Перечисления.СостоянияБлоковУчета.Выполнен Тогда
        Результат = ЦветаСтиля.ЦветСостоянияВыполнен;
        
    ИначеЕсли Статус = Перечисления.СостоянияБлоковУчета.ТребуетсяДействие Тогда
        Результат = ЦветаСтиля.ЦветСостоянияТребуетсяДействие;
        
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Процедура ЗаполнитьСхему()
    мЭлементы = ЭлементыФормы.СхемаПродаж.ЭлементыГрафическойСхемы;
    
    мСостояния = Документы.Сделка.ПолучитьСостоянияБлоков(Ссылка);
    Для Каждого Элемент из мЭлементы Цикл
        мСтрокаСостояния = Неопределено;
        Если Элемент = Неопределено Тогда
            
        ИначеЕсли Элемент.Имя = "ДекорацияБарашки" Тогда
            Запрос = Новый Запрос(
            "ВЫБРАТЬ
            |    ПараметрыСделок.Значение
            |ИЗ
            |    РегистрСведений.ПараметрыСделок КАК ПараметрыСделок
            |ГДЕ
            |    ПараметрыСделок.Сделка = &Сделка
            |    И ПараметрыСделок.Параметр = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыПараметровСделок.КритическаяОшибка)
            |    И ПараметрыСделок.Значение = ИСТИНА");
            Запрос.УстановитьПараметр("Сделка", Ссылка);
            
            Если Запрос.Выполнить().Пустой() Тогда
                Элемент.Картинка = Новый Картинка();
                Элемент.ГиперСсылка = Ложь;
            Иначе
                Элемент.Картинка = БиблиотекаКартинок.Барашки;
                Элемент.ГиперСсылка = Истина;
            КонецЕсли;
            
        Иначе
            мСтрокаСостояния = мСостояния.Найти(Элемент.Имя, "БлокУчетаТекст");
        КонецЕсли;
        
        Если мСтрокаСостояния <> Неопределено Тогда
            Элемент.Наименование = ?(СтрДлина(мСтрокаСостояния.Описание)>30, Лев(мСтрокаСостояния.Описание, 30) + "....", мСтрокаСостояния.Описание);
            Элемент.Подсказка = мСтрокаСостояния.Описание;
            Элемент.ЦветФона =  Документы.Сделка.ПолучитьЦветПоСостояниюБлока(мСтрокаСостояния.Состояние);
        КонецЕсли;
        
    КонецЦикла;        
                        
    
КонецПроцедуры
4 OnCheck
 
24.08.15
14:36
хм, да вот это интереснее, но пунктирный прямоугольник будет жить своей жизнью, так понимаю...
5 Armando
 
24.08.15
14:50
(0) можно через XDTO
6 Armando
 
24.08.15
14:52
+(5) атрибут passageState вроде
7 Armando
 
24.08.15
14:57
Хотя могу ошибаться passageState это вроде другое
8 vde69
 
24.08.15
14:59
(4) если сделаешь копию схемы - то штатного выделения не будет
9 Armando
 
24.08.15
15:15
(7) Проверил. Точно passageState. Если 0, то будет как обычная точка маршрута. Если 1, то точка маршрута будет помечена как выполненная (заштрихована). Если 2, то точка маршрута будет обведена красной пунктирной линией.
10 OnCheck
 
25.08.15
06:37
(8) Благодарю за вариант.
(9) Немного не то. Мне нужно сделать, например, не красный пунктир, а фиолетовую жирную, двойную линию.
11 Armando
 
25.08.15
14:32
(10) чтобы избавиться от красного пунктира надо сериализовать полученную графическую схему в XDTO, найти нужный элемент, сделать passageState = 0, десериализовать обратно. А фиолетовую жирную, двойную линию можно сделать работая с типом ЭлементГрафическойСхемыДействие
12 OnCheck
 
01.09.15
11:20
(11) спасибо
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший