Имя: Пароль:
1C
1C 7.7
v7: Раскраска таблиц FormEx
0 Масянька
 
14.01.15
15:27
День добрый!

Раскраска таблицы реализована - ячейки строк таблицы раскрашиваются по определенному условию. Теперь хочется наложить еще одно условие (не связанное с уже имеющими) и менять цвет шрифта ячейки.
Такая конструкция:
Возврат "()()()()()()()()()()()()(FONT[" + ПолучитьЦвет(255, 0, 0) + "]COUNT[2]";
меняет цвет шрифта, но и сбрасывает раскраску.
Вопрос: возможно ли не сбрасывать фон ячейки? Если да - как?

Заранее - спасибо.
1 Ёпрст
 
гуру
14.01.15
15:29
прописать туда туже строку с раскрасской
©Капитан очевидность
2 Масянька
 
14.01.15
15:32
(1) Фон - по другому условию.
То бишь - фон до запомнить не вариант?
3 Ёпрст
 
гуру
14.01.15
15:40
(2) зачем ?
Тебе всего лишь нужно в первое условие, там где задаешь основной цвет фона воткнуть доп условие на шрифт и усё.
4 Масянька
 
14.01.15
15:46
(3) Есть три колонки: цена, себестоимость, прайсовая цена.
Цена и себестоимость заполняются при заполнении таблицы и  тут же фон цены меняется, если цена ниже себестоимости.
Прайсовая цена загружается из прайса (то есть при заполнении таблицы - данная колонка пуста).
Так вот нужно (вернее, хочу) цену (цвет шрифта) изменять, если цена не равна прайсовой цене.
5 Масянька
 
14.01.15
15:47
+(4) Забыла - фон прайсовой цены тоже изменяется (после заполнении из прайса), если в прайсе нет цены (не найдена номенклатура).
6 Ёпрст
 
гуру
14.01.15
15:47
ну и ?
проблема то в чем ?
7 Масянька
 
14.01.15
15:48
(6) Цена - фон меняется при заполнении таблицы, а шрифт нужно менять при заполнении прайсовой цены.
8 Ёпрст
 
гуру
14.01.15
15:49
у тя ТЗ на форме ?
Ты же в какой-то момент колонку для расскраси заполняешь же, так ?
Вот в этот момент и ставь туда нужный шрифт вместе с раскраской сразу.
9 Масянька
 
14.01.15
15:52
(8) Так в разные моменты происходит... Раскраска-то.
10 Масянька
 
14.01.15
15:54
+(9) Прайсовая цена загружается, когда уже есть цена и себестоимость. И цена-то уже раскрашена.
11 Масянька
 
14.01.15
16:36
Удалось получить значение из колонки для плана раскраски...
А как теперь эту полученную строку изменить - добавить шрифт?
12 Ёпрст
 
гуру
14.01.15
16:39
(11) СтрЗаменить
13 Ёпрст
 
гуру
14.01.15
16:39
(10) и ?
моя твоя непонимат, в момент загрузки цены меняй колонку с раскрасской, усё
14 Масянька
 
14.01.15
16:45
(13) В момент загрузки цены нет (еще) прайсовой цены.
15 Ёпрст
 
гуру
14.01.15
16:53
(14) ну ты тугодум..
заполняй колонку с раскрасской каждый раз, когда меняешь значения в ней.

Грузишь(заполняешь) свою прайсовую цену - синхронно меняешь колонку расскраски. Усё.
Наслаждаешься, кушаешь печенки
16 Ёпрст
 
гуру
14.01.15
16:54
заполняешь/меняешь другую колонку - опять меняешь колонку расскраски, и опять, наслаждаешься, кушаешь печенки
17 Масянька
 
14.01.15
17:01
(15) Ну, извини...
Раскраска работает по условиям. Красятся только цена, себестоимость, прайсовая цена.И что - каждый раз проверять условия?
18 Ёпрст
 
гуру
14.01.15
17:03
(17) да ё, у тя ТЗ на форме или форма списка /документа ?

Вообще не вижу никаких проблем менять текстовую колонку с расскраской в любом случае.
19 Масянька
 
14.01.15
17:04
(18) Внешняя обработка. Таблица значений.
Короче, я лучше порежу, добавлю, солью строку раскраски.
20 Ёпрст
 
гуру
14.01.15
17:04
И тем более, проверять условия..

достаточно писать

Процедура ПриИзмененииКолонки()
   ........  
   ТвояТЗ.Расскраска = ПолучитьРасскраскуДляЭтойСтроки();
   ....
КонецПроцедуры

усё.
21 Масянька
 
14.01.15
17:06
(20) Уже сделала: порезала, добавила и обратно собрала. Все - арбайтэн.
Спасибо тебе!
22 Ёпрст
 
гуру
14.01.15
17:06
ну ладно, кушай печенки тогда
:)
23 ADirks
 
15.01.15
13:08
(21) А не кажется ли тебе, что это несколько более трудоёмко, чем заново строку раскраски собрать, со всеми проверками?
Не дифуры же у тебя там считаются :)
24 Масянька
 
15.01.15
13:12
(23) Нет.
Повторю: фон меняется по одному условию, шрифт - по другому. По любому нужно "собирать" строку раскраски.
25 Ёпрст
 
гуру
15.01.15
13:21
(24) Зачем ?!
26 Ёпрст
 
гуру
15.01.15
13:21
проще сделать одно условие и .. всё
27 Масянька
 
15.01.15
13:24
(25) Та ё-моё.... :))))))))))
Цена - выделяется фоном, если меньше себестоимости. Обе колонки заполнятся при заполнении таблицы.
Цена - меняется цвет шрифта, если цена меньше прайсовой цены. А прайсовая цена загружается отдельно. А можно вообще не загружать.
28 Ёпрст
 
гуру
15.01.15
13:27
(27) И ?
ты не можешь написать условие ? Или в чем вопрос ?
29 Масянька
 
15.01.15
13:28
(28) Вопрос в том, что когда цена сравнивается с прайсовой, фон цены уже может быть изменен.
30 Ёпрст
 
гуру
15.01.15
13:30
Ежели  Цена<Себестоимость И Цена<ЦенаПрайса Тогда
   Возврат (255)(шрифт твой еще какая муть)()()()()()()
ИначеЕжели ...
   Возврат ()(шрифт твой еще какая муть)()()()()()()
ИначеЕжели ....
   Возврат (255)()()()()()()()
СовсемИначе
   Возврат дыркаотбублика
КонецЕжели;

усё собственна
31 Масянька
 
15.01.15
13:31
(30) Если Цена < Прайсовой Тогда
И? В момент заполнения таблицы уже будет меняться шрифт, поскольку прайсовая цена еще даже не загружалась. На фига?
32 Ёпрст
 
гуру
15.01.15
13:36
(31) :)))))))))))))))))))))))))))))))))))))))))))))
33 Ёпрст
 
гуру
15.01.15
13:36
у тебя видать совсем туго с логикой, да ?
34 Ёпрст
 
гуру
15.01.15
13:37
как напишешь условия (в нужном порядочке, так и будет)
одно большое, универсальное условие на все случаи жизни.
Подумай.
35 Ёпрст
 
гуру
15.01.15
13:38
дарю, мало ли, мот тебе еще так надо , а ты не догоняешь ?

Ежели  Цена<Себестоимость И Цена<ЦенаПрайса И ЦенаПрайса <> 0 Тогда
36 Ёпрст
 
гуру
15.01.15
14:13
ну и.. если хочешь, разрыв мозга :

Ежели  Цена<Себестоимость И ПеременнаяЕщеНеГрузилиПрайс = "ТакТочно" Тогда
   Возврат (255)();
ИначеЕжели Цена>=Себестоимость И ПеременнаяЕщеНеГрузилиПрайс = "ТакТочно" Тогда
   Возврат ()();
ИначеЕжели Цена>=Себестоимость И ПеременнаяЕщеНеГрузилиПрайс <> "ТакТочно" и  Тогда
   Возврат ()();
ИначеЕжели Цена>=Себестоимость И ПеременнаяЕщеНеГрузилиПрайс <> "ТакТочно" и Цена<ЦенаПрайса Тогда
   Возврат (255)(шрифт твой);
ИначеЕжели.....

ну и заведешь переменную модуля ПеременнаяЕщеНеГрузилиПрайс

если уж так не можешь составить условие.
37 Масянька
 
15.01.15
14:16
(35) (36) А чем плохо - собирать строку раскраски?
38 Ёпрст
 
гуру
15.01.15
14:20
(37) некрасиво, код разбросан в 2-х местах заместо одного.
А еще добавится условие, опять парсить строку будешь ?
39 Ёпрст
 
гуру
15.01.15
14:20
а тут всё просто и понятненько :)
40 Масянька
 
15.01.15
14:23
(38) Не красиво - и всё?
Пока - больше условий не предвидится.
Все красивенько, в процедурах/функциях, понятно.
41 DrZombi
 
гуру
15.01.15
14:27
(40) >>> Не красиво - и всё?
Копипастить не есть хорошо, плохо сказывается на доработках.

>>>Пока - больше условий не предвидится.
Сколько раз это мне говорили, читай про закон Мерфи wiki:Закон_Мерфи

>>>> Все красивенько, в процедурах/функциях, понятно.
Понятно, это сейчас. Завтра, через неделю, Год... Ты уже и не вспомнишь про этот мусор. И вот тогда будет работать пунктик "Не красиво - и всё?". :)
42 Масянька
 
15.01.15
14:29
(41) Я привыкла работать с процедурами и функциями, привыкла писать краткие комментарии к ним (на будущее).
43 Ёпрст
 
гуру
15.01.15
14:41
(40) потом, проще разобрать одно условие вашим потомкам
:)
44 Ёпрст
 
гуру
15.01.15
14:41
чем искать в куче мест, где может поменяться расскраска таблицы.
45 Ёпрст
 
гуру
15.01.15
14:42
+ если ты еще и меняешь сама потом значения в ТЗ ручонками опосля загрузки, опять таки, проше одним условием "покрасить" строку
46 Злопчинский
 
15.01.15
14:47
Опыт показывает что когда приходит врем япотомкам что-то делать - то к этому времени или контора гикнется или переход на новую систему или потомок тупой (что уже научно практически обосновано) и будет писать все заново
так  что нехрен морочиться - писать имеет смысл как тебе
47 Масянька
 
15.01.15
14:50
(43) И это говорит тот, кто пишет все в одну строку :))))))))))))
(46) Если потомок не умеет читать комменты... Я все равно уже ничего не сделаю :))))))
48 Ёпрст
 
гуру
15.01.15
14:50
Ну не знаю, мне проще прописать всё в одном месте.. универсально
49 Масянька
 
15.01.15
14:53
(48) А о потомках кто думать будет? :)))))))))))
Ты что-то мне давал. Открыла и офигела... Подумала, что плохо качнулось... Потом - дошло.
СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!