Имя: Пароль:
1C
1C 7.7
v7: Не работает раскраска справочника при отключении выборочной раскраски
0 Stella0608
 
03.04.13
17:01
При открытии справочника номенклатура определенные строки справочника должны раскрашиваться. Проблема заключается в том, что раскраска пропадает при установки опции "выборочная раскраска" на закладке FormEx.
Что было опробовано:
1) удален фильтр по раскрашиваемым строкам (пусть красится все) - проблема не исчезла.
2) проведен тест на другой самописной БД. Сама 1с запускается по одному и тому же ярлыку, dll скопирована из рабочей базы (чтобы версии совпадали), код раскраски скопирован. Раскраска прекрасно работает как при установке выборочной раскраски, так и без нее. Т.е. глюки исключительно в рабочей базе.
Код, к примеру, такой:
"Возврат "BRUSH["+ПолучитьЦвет(176,226,255)+"]";
Куда копать, а то версии исчерпаны :(.
1 Ёпрст
 
03.04.13
17:14
Ё..
прочитать наконец СП!
2 Ёпрст
 
03.04.13
17:15
ЗЫ: Использовать новый план расскраски + выборочная расскраска именно там, где нужно
3 Stella0608
 
03.04.13
17:17
Мне нужно тупо раскрасить одну строку.
И я в упор не понимаю, почему в одной базе работает, а вот второй нет. :(
4 Ёпрст
 
03.04.13
17:20
Текстовую колонку в любое место с ЗАГОЛОВКОМ
FormEx_ПланРаскраски и формулой, например, такой
"(BRUSH[255])"

Процедура ПослеСозданияФормы()
   Сервис = СоздатьОбъект("Сервис");
   Сервис.ИспользоватьПланРаскраски(1);
   Сервис.ВключитьРаскраскуТаблиц(1);
   РасшФормы= СоздатьОбъект("РасширениеФормы");
   РасшФормы.УстановитьФорму(Форма);
   РасшФормы.РаскрашиватьТаблицу("МногострочнаяЧасть");
КонецПроцедуры
5 Ёпрст
 
03.04.13
17:20
Только сервис лучше пихать в глоб модуль и включить расскраску один раз там в ПриНачалеРаботыСистемы
6 Ёпрст
 
03.04.13
17:21
Если 1cpp нема, то ПослеСозданияФормы заменить на ПриОткрытии или ПослеОткрытия
7 ЧеловекДуши
 
03.04.13
17:22
(0) Все дело в плане раскраски :)
У Формекса два режима раскраски:
1. Медленный, как у тебя через "BRUSH["+ПолучитьЦвет(176,226,255)+"]" и т.д.
2. Быстрый, на таблице или списке справочника должна быть создана колонка с заголовком "FormEx_ПланРаскраски" (это может и не быть реквизит)
В заголовке нужно определиться подобной формулой "РаскраситьКолонки()"


//РаскраситьКолонки()
//_____________________________________________________________________________
Функция РаскраситьКолонки()
   Перем Рез;
   Перем ЦветСтрока,ЦветСтрока2,ЦветСтрока3,ЦветСтрока4;
   
   Рез = "";
   
   Если ЗапретитьОтгрузку = 0 Тогда
       Возврат Рез;
   КонецЕсли;
   
   ЦветСтрока = "C0C0C0"; //Серый фон
   ЦветСтрока2= "000000"; //Черный шрифт
   ЦветСтрока3= "0000FF"; //Красный Фон
   ЦветСтрока4= "FF0000"; //Синий шрифт
   Рез="(FONT[0x"+ЦветСтрока2+"] BRUSH[0x"+ЦветСтрока+"] FONT_S[0x"+ЦветСтрока4+"] BRUSH_S[0x"+ЦветСтрока3+"])";// COUNT["+КолКолонок+"]"; //Цвет зеленый - кодировка наоборот RGB -> BGR
   
   Возврат Рез;
КонецФункции //РаскраситьКолонки(1)


Читай СП, там все описано... Как нужно задавать шаблон для разукраски.
8 Stella0608
 
03.04.13
17:29
1) Есть 1с++ и еще море ВК.
2) На тему медленный - не медленный... Можно подумать на тему версии о том, что проблема в объеме базы. Рабочая база очень большая, возможно выборочная раскраска на ней просто затыкается. Ибо версии уже исчерпаны, на самописке маленькой код идентичный и пофиг на галку.
3) Раскраска включена в ПриНачалеРаботыСистемы()
4) Можно ли одновременно использовать старый и новый план раскраски? На данный момент вся база написана на старом, и переписывать полконфы мне банально никто не даст.
9 Ёпрст
 
03.04.13
17:34
(8)
4.неа
10 Stella0608
 
03.04.13
17:35
Тогда упс... а решить проблему никак? В других базах работает же....
11 Ёпрст
 
03.04.13
17:35
+9 а переписывать и не надо, поставишь turbomd.dll и на ходу поменяешь где надо.
Не думаю, что она у вас повсюду и повсеместно. Делов то на полчаса
12 ЧеловекДуши
 
03.04.13
17:39
(10) Либо тот, либо другой метод. :)
13 Stella0608
 
03.04.13
17:43
(11) Не взлетит, у нас каждое изменение кода по согласованию.
Мне больше интересно, почему первый метод не работает.
14 Stella0608
 
03.04.13
18:26
Добавила ПослеОткрытия() и 2 строчки кода - все заработало...
Так в чем проблема была?
15 Stella0608
 
04.04.13
10:25
В общем ситуация такая.
1) В моей самописке примерно такой же код, как в (4). Правда заголовка нет, и используется ПослеОткрытия(). Работает нормально и в справочниках, и в ТЗ, и в документах. Если перенести процедуру ПослеОткрытия() в рабочую базу (раскраску в ней писала не я), раскрашивается нормально, независимо от того, какие галочки установлены в настройках FormEx.
2) То, что приведено в (4) - это старый или новый план раскраски?
3) Если ли принципиальная разница, применять ПослеОткрытия() или ПослеСозданияФормы() в том случае, если одновременно установлены FormEx или 1с++?