Имя: Пароль:
1C
1C 7.7
v7: Как раскрасить активную строку справочника?
,
0 adm1nb3k
 
20.02.17
23:16
Функция ПроверитьВид()
    Если ПустоеЗначение(ТекущийЭлемент()) = 1 Тогда
        // не выбран элемент
    Иначе
        Возврат "BRUSH["+ПолучитьЦвет(204,255,204)+"]";//Зеленый
    КонецЕсли;
    
КонецФункции

Добавил вот такой код. Теперь сам справочник зеленый. Как покрасить только активную строку?
1 Злопчинский
 
20.02.17
23:57
(0) будьте проще, пишите с 16-ричной нотации и не мучьтесь пересчетами функциями
"BRUSH[0xCCFFCC]"
2 Злопчинский
 
20.02.17
23:58
(0) смотри в формексе ПланРаскраски
3 adm1nb3k
 
21.02.17
00:08
(2) а формэксе активная строка есть?!
4 Злопчинский
 
21.02.17
00:13
в формексе нету.
в плане раскраски - есть указание как красить активную строку.
5 HawkEye
 
21.02.17
08:16
(0) браш примени только к активной строке....
6 Vippi_
 
21.02.17
08:46
(0) > Как покрасить только активную строку?

BRUSH_S
7 Это_mike
 
21.02.17
09:00
кто такой "активный строк"?
8 Злопчинский
 
21.02.17
09:34
(6) а это работает везде, и в ТЗ и ТЧ доков тоже?
9 Vippi_
 
21.02.17
09:52
(8) Везде.
10 HawkEye
 
21.02.17
09:53
(7) это родственник "полосатый мух"
11 Злопчинский
 
21.02.17
10:02
(9) понял, спсб
12 Злопчинский
 
21.02.17
10:03
хм.. а интересно, как BRUSH_S будет работать на многострочной ТЗ...
13 GSoft
 
20.03.17
19:15
(1)

юзай "BRUSH_S["

вот тебе в помощь пример

выдернул из своей подсистемы "Акварелька"
там суть такая что на уровне пользователя можно установить цвет под каждый тип/вид объекта или сам объект
ссылку пока дать не могу - на ИС технические работы идут


//функция для вставки в форму списка объекта - спр, журнал и т.д.
Функция ОпределитьЦветСтроки()
    Если глВключитьРаскраскуТаблиц() = 0 Тогда
        Возврат "";
    КонецЕсли;        
    
    Если ПустоеЗначение(ТекущийДокумент) = 1 Тогда
        Возврат "";
    КонецЕсли;

    Возврат глОпределитьЦветСтроки(ТекущийДокумент);
КонецФункции





//глобальная функция
//_____________________________________________________________________________
Функция глОпределитьЦветСтрокиОбъекта(Объект, УчетДатыЗапретаРедактирования, ОбъектРодитель = "")
    //парЦвета = "";                                                                              
    парЦвета = "BRUSH_S[" + Константа.ЦветПодсветкиТекущейСтроки.ДесятичноеЗнач + "]";

    Если (ТипЗначенияСтр(Объект) = "Справочник") или ( ТипЗначенияСтр(Объект) = "Документ") Тогда
        //алгоритм определения параметров цвета строки
        //1 проверяем наличие пометки на удаление и получаем параметры цвета из Константа.ЦветПомеченныхНаУдалениеДокументов
        //2 проверяем наличие персональных настроек для объекта
        //3 проверяем наличие персональных настроек пометки на удаление для объекта
        //4 проверяем наличие общих настроек для данного вида объекта
        //5 проверяем наличие общих настроек пометки на удаление для данного вида объекта
        
        Если ТипЗначенияСтр(Объект) = "Справочник" Тогда
            СтрокаПоиска = "Справочник." + СокрЛП(Объект.Вид());
            
            //проверим наличие пометки на удаление
            Если Объект.ПометкаУдаления() = 1 Тогда
                БазовыйЦветУд = СокрЛП(Константа.ЦветПомеченныхНаУдалениеЭлементовСправочников.ДесятичноеЗнач);
                парЦвета = парЦвета + "BRUSH["+?(ПустоеЗначение(БазовыйЦветУд) = 0, БазовыйЦветУд, 16777215)+"]";
            КонецЕсли;
        ИначеЕсли ТипЗначенияСтр(Объект) = "Документ" Тогда
            Если УчетДатыЗапретаРедактирования = 1 Тогда
                Если Объект.ДатаДок <= Константа.ДатаЗапретаРедактирования Тогда
                    Возврат  парЦвета + "BRUSH[" + глПолучитьЦвет(204,204,204)+"]";
                КонецЕсли;
            КонецЕсли;
            
            СтрокаПоиска = "Документ." + СокрЛП(Объект.Вид());
            
            //проверим наличие пометки на удаление
            Если Объект.ПометкаУдаления() = 1 Тогда
                БазовыйЦветУд = СокрЛП(Константа.ЦветПомеченныхНаУдалениеДокументов.ДесятичноеЗнач);
                парЦвета =  парЦвета + "BRUSH["+?(ПустоеЗначение(БазовыйЦветУд) = 0, БазовыйЦветУд, 16777215)+"]";
            КонецЕсли;
        КонецЕсли;
        
        //проверим не заданы ли данного объекта собственные настройки
        Если глСпрЦвЭл.НайтиПоРеквизиту("ИдентификаторОбъектаДляПоиска", (СтрокаПоиска + " [" + СокрЛП(Объект) + "]"), 1) = 1 Тогда
            //искомый элемент нашли
            Если Объект.ПометкаУдаления() = 0 Тогда
                //берем общие настройки
                парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоФон) = 0, глСпрЦвЭл.ЧислоФон, 16777215)+"]";
            Иначе                      
                //объект помечен на удаление, берем персональные настройки объекта для пометки на удаление если они есть
                Если глСпрЦвЭл.СобственныйЦветПометкиУдаления = Перечисление.Булево.Да Тогда
                    парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоПометкаУдаления) = 0, глСпрЦвЭл.ЧислоПометкаУдаления, 16777215)+"]";    
                КонецЕсли;
            КонецЕсли;
        Иначе
            //определим есть ли общие настройки для данного вида объекта
            Если глСпрЦвЭл.НайтиПоРеквизиту("ИдентификаторОбъектаДляПоиска", СтрокаПоиска, 1) = 1 Тогда
                //искомый вид документов нашли
                Если Объект.ПометкаУдаления() = 0 Тогда
                    //берем общие настройки
                    парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоФон) = 0, глСпрЦвЭл.ЧислоФон, 16777215)+"]";
                Иначе                      
                    //объект помечен на удаление, берем персональные настройки объекта для пометки на удаление если они есть
                    Если глСпрЦвЭл.СобственныйЦветПометкиУдаления = Перечисление.Булево.Да Тогда
                        парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоПометкаУдаления) = 0, глСпрЦвЭл.ЧислоПометкаУдаления, 16777215)+"]";    
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    ИначеЕсли ТипЗначенияСтр(Объект) = "Перечисление" Тогда
        //алгоритм определения параметров цвета строки
        //1 проверяем наличие пометки на удаление родительского объекта и получаем параметры цвета из Константа.ЦветПомеченныхНаУдалениеДокументов
        //2 проверяем наличие персональных настроек для объекта
        //3 проверяем наличие персональных настроек пометки на удаление для родительского объекта
        //4 проверяем наличие общих настроек для данного вида объекта
        //5 проверяем наличие общих настроек пометки на удаление для данного вида родительского объекта
        
        //проверим наличие пометки на удаление родительского объекта
        Если ОбъектРодитель.ПометкаУдаления() = 1 Тогда
            Если ТипЗначенияСтр(ОбъектРодитель) = "Справочник" Тогда
                БазовыйЦветУд = СокрЛП(Константа.ЦветПомеченныхНаУдалениеЭлементовСправочников.ДесятичноеЗнач);
                парЦвета =  парЦвета + "BRUSH["+?(ПустоеЗначение(БазовыйЦветУд) = 0, БазовыйЦветУд, 16777215)+"]";
            ИначеЕсли ТипЗначенияСтр(ОбъектРодитель) = "Документ" Тогда
                БазовыйЦветУд = СокрЛП(Константа.ЦветПомеченныхНаУдалениеДокументов.ДесятичноеЗнач);
                парЦвета =  парЦвета + "BRUSH["+?(ПустоеЗначение(БазовыйЦветУд) = 0, БазовыйЦветУд, 16777215)+"]";
            КонецЕсли;
        КонецЕсли;
        
        СтрокаПоиска = "Перечисление." + СокрЛП(Объект.Вид());
        
        //проверим не заданы ли данного объекта собственные настройки
        Если глСпрЦвЭл.НайтиПоРеквизиту("ИдентификаторОбъектаДляПоиска", (СтрокаПоиска + " [" + СокрЛП(Объект) + "]"), 1) = 1 Тогда
            //искомый элемент нашли
            Если ОбъектРодитель.ПометкаУдаления() = 0 Тогда
                //берем общие настройки
                парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоФон) = 0, глСпрЦвЭл.ЧислоФон, 16777215)+"]";
            Иначе                      
                //объект помечен на удаление, берем персональные настройки объекта для пометки на удаление если они есть
                Если глСпрЦвЭл.СобственныйЦветПометкиУдаления = Перечисление.Булево.Да Тогда
                    парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоПометкаУдаления) = 0, глСпрЦвЭл.ЧислоПометкаУдаления, 16777215)+"]";    
                КонецЕсли;
            КонецЕсли;
        Иначе
            //определим есть ли общие настройки для данного вида объекта
            Если глСпрЦвЭл.НайтиПоРеквизиту("ИдентификаторОбъектаДляПоиска", СтрокаПоиска, 1) = 1 Тогда
                //искомый вид документов нашли
                Если ОбъектРодитель.ПометкаУдаления() = 0 Тогда
                    //берем общие настройки
                    парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоФон) = 0, глСпрЦвЭл.ЧислоФон, 16777215)+"]";
                Иначе                      
                    //объект помечен на удаление, берем персональные настройки объекта для пометки на удаление если они есть
                    Если глСпрЦвЭл.СобственныйЦветПометкиУдаления = Перечисление.Булево.Да Тогда
                        парЦвета =  парЦвета + "FONT[" + глСпрЦвЭл.ЧислоШрифт + "]" + "BRUSH["+?(ПустоеЗначение(глСпрЦвЭл.ЧислоПометкаУдаления) = 0, глСпрЦвЭл.ЧислоПометкаУдаления, 16777215)+"]";    
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;  
    
    Возврат парЦвета;    
КонецФункции    // глОпределитьЦветСтрокиОбъекта
14 GSoft
 
20.03.17
19:50
(1)
вот ссылку на подсистему

http://catalog.mista.ru/public/150547/
Основная теорема систематики: Новые системы плодят новые проблемы.