Имя: Пароль:
1C
1C 7.7
v7: Раскраска формэксом
0 Ganiev
 
12.04.13
07:13
Раскрашиваю многострочную часть во внешней обработке с помощью "Formex"
Получается подсветить только текущую строку! как раскрасить всю таблицу а не только тек. строку! вот код:

Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0) Экспорт
    Возврат Макс(0,Синий)*65536+Макс(0,Зеленый)*256+Макс(0,Красный);
КонецФункции

Функция ПроверитьВид()
   Возврат "(BRUSH_S["+ПолучитьЦвет(254,135,118)+"])()";//Только строка
КонецФункции//ПроверитьВид()


Процедура ПриОткрытии()
   Попытка //Попробую узнать загружена ли компонента
       Сервис = СоздатьОбъект("Сервис");
       Сервис.ВключитьРаскраскуТаблиц(0);
       Сервис.ИспользоватьПланРаскраски(1);
       Загружена = 1;
   Исключение
       Если ЗагрузитьВнешнююКомпоненту("formex.dll")=0 Тогда
           Загружена = 0;
       Иначе
           Сервис = СоздатьОбъект("Сервис");
           Сервис.ВключитьРаскраскуТаблиц(0);
           Сервис.ИспользоватьПланРаскраски(1);
           Загружена = 2;
       КонецЕсли;
   КонецПопытки;
   
   Если Загружена = 0 Тогда
       Предупреждение("Не удалось загрузить внешнюю компоненту FormEx.",10);
       СтатусВозврата(0);
       Возврат;
   ИначеЕсли Загружена = 1 Тогда
       Сообщить("Formex.dll загружена больше не загружаю");
   ИначеЕсли Загружена = 2 Тогда
       Сообщить("Загружен Formex.dll");
   КонецЕсли;
   
   
   ТЗ.НоваяКолонка("Первая");
   ТЗ.НоваяКолонка("Вторая");
   ТЗ.НоваяКолонка("Третья");
   ТЗ.НоваяКолонка("FormEx_ПланРаскраски");
   
   ТЗ.НоваяСтрока();
   ТЗ.FormEx_ПланРаскраски=ПроверитьВид();
   ТЗ.ВидимостьКолонки("FormEx_ПланРаскраски",0,);
КонецПроцедуры//ПриОткрытии()

Процедура ПослеОткрытия()
   ФормаРасш = СоздатьОбъект("РасширениеФормы");
   ФормаРасш.РаскрашиватьТаблицу("ТЗ");
КонецПроцедуры//ПослеОткрытия()

Процедура Сформировать()
   к = 0;
   ТЗ.КоличествоСтрок(к);
   Для к = 1 по 20 Цикл
       ТЗ.НоваяСтрока();
       ТЗ.Первая=к;
       ТЗ.Вторая=к+1;
       ТЗ.Третья=к+2;
       ТЗ.FormEx_ПланРаскраски=ПроверитьВид();
   КонецЦикла;
КонецПроцедуры//Сформировать()
1 big
 
12.04.13
07:25
надо, чтобы у колонки был ЗАГОЛОВОК "FormEx_ПланРаскраски"
т.е. вот так:
тз.НоваяКолонка("Цвет","Строка",,,"FormEx_ПланРаскраски");

и строка цвета должна описывать цвет каждой ячейки.

ну, и на всякий случай

локСервис=СоздатьОбъект("Сервис");
локСервис.ВключитьРаскраскуТаблиц();
локСервис.ИспользоватьПланРаскраски(1);
2 Ganiev
 
12.04.13
07:32
(1) Задал жестко заголовок- не помогло

и строка цвета должна описывать цвет каждой ячейки.  --- Не понял Что ты имеешь ввиду можно подробнее?
3 Ganiev
 
12.04.13
07:46
Есть еще варианты?
4 Ёпрст
 
гуру
12.04.13
08:50
Процедура ПослеОткрытия()
   Сервис = СоздатьОбъект("Сервис");
   Сервис.ИспользоватьПланРаскраски(1);
   Сервис.ВключитьРаскраскуТаблиц(1);
   РасшФормы= СоздатьОбъект("РасширениеФормы");
   РасшФормы.УстановитьФорму(Форма);
//    РасшФормы.РаскрашиватьТаблицу("МногострочнаяЧасть");
   РасшФормы.РаскрашиватьТаблицу("ТЗ");
КонецПроцедуры
5 Ёпрст
 
гуру
12.04.13
08:50
ну и формекс последний желательно
6 mikecool
 
12.04.13
08:55
а устанавливать параметры раскраски для каждой строки не ?
7 Ganiev
 
12.04.13
12:18
(4) Все равно раскрашивает только текущую строку! Формек Версии 2.0.5.99 1срр версии: 3.2.3.1
8 Ёпрст
 
гуру
12.04.13
12:22
(7) ясен пень!
BRUSH_S - это подсветка ТЕКУЩЕЙ строки
9 Ganiev
 
12.04.13
12:46
(8)А а а  блин точно вот я послепошарый! СПС!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс