Подсветить строку

  1. 9 г. назад

    День добрый!
    Чёт я запуталась....
    Есть таблица на форме. При открытии формы таблица инициализируется (колонки). Потом заполняется (по кнопке).
    Хочу - при выборе строки подсвечивать всю строку.

    Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0)
    	
    	Возврат Макс(0, Синий) * 65536 + Макс(0, Зеленый) * 256 + Макс(0, Красный);
    
    КонецФункции	// ПолучитьЦвет
    
    Функция РаскраситьСтроку(гТабВыборка)
    
    		Возврат "(BRUSH[" + ПолучитьЦвет(255, 255, 153) + "]COUNT[2]";
    	
    КонецФункции	// РаскраситьСтроку
    

    Это мне понятно. Мне не понятно, как повесить это на таблицу? Причем, на таблице уже висит функция ПриВыбореОбъекта.
    Спасибо.

  2. Я не пойму, что все ушли Славянск охранять?!
    А кто дом охранять будет?!

  3. я конечно 7.7 уже не помню...но имхается мне что там через вызов функции в тексте на форме делать надо...

  4. запихни вызов функции в формулу первой колонки

    Ответы: (5)
  5. а в 7.7 у тз в колонках есть формулы??? или это не тз???

    Ответы: (11)
  6. (3) Как?! Колонки инициализируются при открытии.

    Ответы: (6) (9)
  7. (5) http://dorex.pro/?projects&formex&download там же описание есть

    Ответы: (7)
  8. (6) Панятна... Как всегда - открывай и СП и читай....

  9. Масянька открывай и СП и читай

    бинго!

  10. (5) что значит "Колонки инициализируются при открытии"? создаются, заполняются, или что?

    Ответы: (10)
  11. +(9) и чем это мешает запихиванию формулы в первую колонку?

  12. (4) твой вопрос поставил меня в тупик. что, так давно не заглядывал в конфигуратор? :)

    Ответы: (15)
  13. 	// определим каталог для сохранения файла
    	мГод 				= Строка(ДатаГод(ДатаОкончания));
    	КаталогДляЗаписи	= СокрЛП("\\Manager2\Документы для Светы\" + мГод + "\Документы\"); 
    
    	гТабВыборка.НоваяКолонка("Пометка"		,"Число" ,  4, 0,""			    	, 4);
    	
    	гТабВыборка.НоваяКолонка("Дата"			,"Дата"  , 	 ,  , 				    ,); 
    	гТабВыборка.НоваяКолонка("Документ"		, 		 , 	 ,  , "Документ" 	    , 36); 
    	гТабВыборка.НоваяКолонка("Номер"		,"Номер" , 	 ,  , 				    , 8); 
    	гТабВыборка.НоваяКолонка("Сумма"		,"Число" , 20, 2, "Сумма"		    ,);
    	гТабВыборка.НоваяКолонка("Контрагент"	, 		 , 	 ,  , "Контрагент"	    , 45); 
    	
    	
    	гТабВыборка.НоваяКолонка("Услуги"		,"Число" ,  4, 0, "Услуги" 		    , 10);
    	гТабВыборка.НоваяКолонка("Себестоимость","Число" , 20, 2, "Себестоим." 	    ,);
    	гТабВыборка.НоваяКолонка("СуммаБезНДС"	,"Число" , 20, 2, "Сумма (без НДС)" ,);
    	гТабВыборка.НоваяКолонка("Ссылка"		, 		 ,   ,  , "Документ"	    ,);
    	
    	гТабВыборка.ВыводитьПиктограммы("Пометка", 2);       
    	гТабВыборка.ВыводитьПиктограммы("Услуги", 4);
    	гТабВыборка.ВидимостьКолонки("Ссылка", 0);
    	
    	// процесс записи
    	Форма.РамкаЗаписиДокументов.Видимость(0);
    	Форма.БегунокПрогрессБар.Видимость(0);
    	Форма.БегунокПроценты.Видимость(0);
    	
    КонецПроцедуры	// ПриОткрытии 
    
    

    Куда пихать формулу?!

  14. Масянька гТабВыборка

    как корабль назовешь..

  15. 15.04.2014 14:32:51 отредактировано Mikeware

    Масянька Куда пихать формулу?!

    Господа гусары, МОЛЧАТЬ!

  16. (11) только для конвертации...)))

  17. Масянька Куда пихать формулу?!

    давай издалека.

    у тебя ТЗ на форме лежит?

    Ответы: (17)
  18. СП - НоваяКолонка(<?>,,,,,,,);
    NewColumn(<?>,,,,,,,);
    Синтаксис:
    НоваяКолонка(<Идентификатор>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
    Назначение:
    Добавить в конец таблицы значений новую колонку. Возвращает номер новой колонки.
    Параметры:
    <Идентификатор> - необязательный параметр. Идентификатор колонки. Если не указан, то обращение к колонке возможно только по номеру.
    <Тип> - необязательный параметр. Строка или вид субконто, задающий тип колонки. Если не указан, то можно хранить любой тип.
    <Длина> - необязательный параметр. Длина для числовой или строковой колонки.
    <Точность> - необязательный параметр. Точность (длина дробной части) для числовой колонки.
    <Заголовок> - необязательный параметр. Строковое выражение, содержащее заголовок колонки в элементе диалога типа ''ТаблицаЗначений''.
    <Ширина> - необязательный параметр. Числовое выражение, содержащее ширину колонки (в символах) для представления колонки в элементе диалога типа ''ТаблицаЗначений''.
    <Формат> - необязательный параметр. Строковое выражение, содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
    <Положение> - необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки. Число: 1 - слева; 2 - справа.
    Про формулу ни слова....
    (16) Да.

  19. формула, которая смогла..

  20. Масянька Да.

    ну во-о-от, а говоришь, куда пихать.

    создай в ней колонку, и в её формулу пихай

    Ответы: (21)
  21. я грит медленно раздвигаю колонки таблицы..

  22. (19) Не-а. Я не понимаю [smile=;_;] (бьюсь головой об стол).
    Колонки создаются в ПриОткрытии...

  23. Масянька Колонки создаются в ПриОткрытии...

    создай одну на форме

    Ответы: (23)
  24. (22) КАК?!

  25. руками...

  26. Безымянный.jpg

    Ответы: (28)
  27. V777 но имхается мне что там через вызов функции в тексте на форме делать надо...

  28. ну, ладно, попробуем с другой стороны.
    хорошо, создавай программно. назови первую колонку "Раскраска".

    но тогда тебе придётся заполнять её значение функцией РаскраситьСтроку() при программном заполнении таблицы.

    ну, или повесь скрытый текст на форму с функцией, которая будет заполнять значение этого столбца

  29. (25) ну, ткни на "Текст", потом на таблицу

  30. andrewks ну, или повесь скрытый текст на форму с функцией, которая будет заполнять значение этого столбца

    так и я о чем...))

  31. andrewks ну, или повесь скрытый текст на форму с функцией, которая будет заполнять значение этого столбца

    Да, как программно повесить-то?
    (28) Пробовала. Текст вставляется, как отдельное поле.

    Ответы: (31) (32) (33)
  32. (30) Тьфу, блин. То есть отдельное поле?

  33. +(30) И как синхронизировать с таблицей?

  34. В (30) про колонку - как программно функцию повесить?

  35. Я правильно понимаю:

    Процедура ПриОткрытии() 
    
    	// определим каталог для сохранения файла
    	мГод 				= Строка(ДатаГод(ДатаОкончания));
    	КаталогДляЗаписи	= СокрЛП("\\Manager2\Документы для Светы\" + мГод + "\Документы\"); 
    
    	гТабВыборка.НоваяКолонка("Раскраска");
    
    	гТабВыборка.НоваяКолонка("Пометка"		,"Число" ,  4, 0,""			    	, 4);
    	
    	гТабВыборка.НоваяКолонка("Дата"			,"Дата"  , 	 ,  , 				    ,); 
    	гТабВыборка.НоваяКолонка("Документ"		, 		 , 	 ,  , "Документ" 	    , 36); 
    	гТабВыборка.НоваяКолонка("Номер"		,"Номер" , 	 ,  , 				    , 8); 
    	гТабВыборка.НоваяКолонка("Сумма"		,"Число" , 20, 2, "Сумма"		    ,);
    	гТабВыборка.НоваяКолонка("Контрагент"	, 		 , 	 ,  , "Контрагент"	    , 45); 
    	
    	
    	гТабВыборка.НоваяКолонка("Услуги"		,"Число" ,  4, 0, "Услуги" 		    , 10);
    	гТабВыборка.НоваяКолонка("Себестоимость","Число" , 20, 2, "Себестоим." 	    ,);
    	гТабВыборка.НоваяКолонка("СуммаБезНДС"	,"Число" , 20, 2, "Сумма (без НДС)" ,);
    	гТабВыборка.НоваяКолонка("Ссылка"		, 		 ,   ,  , "Документ"	    ,);
    	
    	//гТабВыборка.ВидимостьКолонки();
    	гТабВыборка.ВыводитьПиктограммы("Пометка", 2);       
    	гТабВыборка.ВыводитьПиктограммы("Услуги", 4);
    	гТабВыборка.ВидимостьКолонки("Раскраска, Ссылка", 0);
    	
    	// процесс записи
    	Форма.РамкаЗаписиДокументов.Видимость(0);
    	Форма.БегунокПрогрессБар.Видимость(0);
    	Форма.БегунокПроценты.Видимость(0);
    	
    	[b]гТабВыборка.Раскраска = РаскраситьСтроку(гТабВыборка)[/b];
    КонецПроцедуры	// ПриОткрытии 
    
    Процедура ПослеОткрытия()
    
    	ФормаРасш = СоздатьОбъект("РасширениеФормы");
    	ФормаРасш.РаскрашиватьТаблицу("гТабВыборка");
    	
    	мСервис = СоздатьОбъект("Сервис");
    	мСервис.ВключитьРаскраскуТаблиц();
    
    КонецПроцедуры // ПослеОткрытия
    
  36. Не, это фигня. Мне надо, чтобы подсвечивалась строка, на которой курсор.

  37. Фигасе все динозавры в одной ветке ...

  38. Дядьки!

    Процедура ПриВыбореОбъекта() 
    	
    	ТекСтр	= гТабВыборка.ТекущаяСтрока();
    	ТекКол	= СокрЛП(гТабВыборка.ТекущаяКолонка());
    	
    	Если ТекСтр = 0 Тогда 
    		Возврат 
    	КонецЕсли;
    	
    	гТабВыборка.ПолучитьСтрокуПоНомеру(ТекСтр);
    	гТабВыборка.Раскраска = РаскраситьСтроку(гТабВыборка);
    
    	Если ТекКол = "Пометка" Тогда
    		Если гТабВыборка.Пометка = Пометка_Включена Тогда
    			гТабВыборка.Пометка = Пометка_Выключена;
    		Иначе
    			гТабВыборка.Пометка = Пометка_Включена;
    		КонецЕсли; 
    	Иначе 
    		глСформироватьДеревоДокументов(гТабВыборка.Ссылка);   
    	КонецЕсли;
    	
    КонецПроцедуры	// ПриВыбореОбъекта
    

    Так работает, но только по двойному клику и после отметки и вывода дерева.

    Ответы: (50)
  39. да вызывай ты процедуру с текста уже...будет тебе по одинарному клику...))

  40. кидаешь на форму текст...сам текст очищаешь а в формулу пихаешь вызов твой процедуры...в процедуре проверяешь если текущий объект твоя тз то раскрасить текущую строку...тут уж сама разберешься...работает по одинарному клику точно помню...

    Ответы: (40)
  41. мляяяя....
    (39) накуа????

    Ответы: (41) (42)
  42. (40) а хз...проще вызов в саму тз пихнуть...)))

    Ответы: (43)
  43. (40) А как?!

    Ответы: (53)
  44. (41) Как?!

  45. ну в формулу в свойствах таблицы впиши вызов своей процедуры...

    Ответы: (45) (46)
  46. (44) В формуле таблицы стоит "ПриВыбореОбъекта()".

    Ответы: (47)
  47. (44)+100
    еще можно рекурсивно через параметры вызова процедуры прописать вывод формулы в таблицу, где колонка является деревом параметров

  48. (45) точка с запятой и дальше свою процедуру...

    Ответы: (48)
  49. (47)
    Безымянный.jpg
    Не арбайтэн.

  50. а при выбореобъекта что происходит вообще???

    Ответы: (50)
  51. (49) См. (37)

  52. а глСформироватьДеревоДокументов что делает??? я туплю не обращай внимания...у мну тут конвертация зараза...))

  53. Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0)
    	
    	Возврат Макс(0, Синий) * 65536 + Макс(0, Зеленый) * 256 + Макс(0, Красный);
    
    КонецФункции	// ПолучитьЦвет
    
    Функция РаскраситьСтроку(гТабВыборка)
    
    		Возврат "BRUSH[" + ПолучитьЦвет(255, 255, 153) + "]";
    	
    КонецФункции	// РаскраситьСтроку
    
    //******************************************************************************
    Процедура ПриОткрытии() 
    
    	// определим каталог для сохранения файла
    	мГод 				= Строка(ДатаГод(ДатаОкончания));
    	КаталогДляЗаписи	= СокрЛП("\\Manager2\Документы для Светы\" + мГод + "\Документы\"); 
    
    	гТабВыборка.НоваяКолонка("Раскраска"	,"Строка",   ,  ,"FormEx_ПланРаскраски");
    
    	гТабВыборка.НоваяКолонка("Пометка"		,"Число" ,  4, 0,""			    	, 4);
    	
    	гТабВыборка.НоваяКолонка("Дата"			,"Дата"  , 	 ,  , 				    ,); 
    	гТабВыборка.НоваяКолонка("Документ"		, 		 , 	 ,  , "Документ" 	    , 36); 
    	гТабВыборка.НоваяКолонка("Номер"		,"Номер" , 	 ,  , 				    , 8); 
    	гТабВыборка.НоваяКолонка("Сумма"		,"Число" , 20, 2, "Сумма"		    ,);
    	гТабВыборка.НоваяКолонка("Контрагент"	, 		 , 	 ,  , "Контрагент"	    , 45); 
    	
    	
    	гТабВыборка.НоваяКолонка("Услуги"		,"Число" ,  4, 0, "Услуги" 		    , 10);
    	гТабВыборка.НоваяКолонка("Себестоимость","Число" , 20, 2, "Себестоим." 	    ,);
    	гТабВыборка.НоваяКолонка("СуммаБезНДС"	,"Число" , 20, 2, "Сумма (без НДС)" ,);
    	гТабВыборка.НоваяКолонка("Ссылка"		, 		 ,   ,  , "Документ"	    ,);
    	
    	//гТабВыборка.ВидимостьКолонки();
    	гТабВыборка.ВыводитьПиктограммы("Пометка", 2);       
    	гТабВыборка.ВыводитьПиктограммы("Услуги", 4);
    	гТабВыборка.ВидимостьКолонки("Раскраска, Ссылка", 0);
    	
    	// процесс записи
    	Форма.РамкаЗаписиДокументов.Видимость(0);
    	Форма.БегунокПрогрессБар.Видимость(0);
    	Форма.БегунокПроценты.Видимость(0);
    	
    КонецПроцедуры	// ПриОткрытии 
    
    Процедура ПослеОткрытия()
    
    	ФормаРасш = СоздатьОбъект("РасширениеФормы");
    	ФормаРасш.РаскрашиватьТаблицу("гТабВыборка");
    	
    	мСервис = СоздатьОбъект("Сервис");
    	мСервис.ВключитьРаскраскуТаблиц();
    
    КонецПроцедуры // ПослеОткрытия
    
    Процедура ПриВыбореОбъекта() 
    	
    	ТекСтр	= гТабВыборка.ТекущаяСтрока();
    	ТекКол	= СокрЛП(гТабВыборка.ТекущаяКолонка());
    	
    	Если ТекСтр = 0 Тогда 
    		Возврат 
    	КонецЕсли;
    	
    	гТабВыборка.ПолучитьСтрокуПоНомеру(ТекСтр);
    
    	Если ТекКол = "Пометка" Тогда
    		Если гТабВыборка.Пометка = Пометка_Включена Тогда
    			гТабВыборка.Пометка = Пометка_Выключена;
    		Иначе
    			гТабВыборка.Пометка = Пометка_Включена;
    		КонецЕсли; 
    	Иначе 
    		глСформироватьДеревоДокументов(гТабВыборка.Ссылка);   
    	КонецЕсли;
    	
    КонецПроцедуры	// ПриВыбореОбъекта
    

    ПриВыбореОбъекта - пометка/вывод дерева связанных док-ов (для тек. строки).

  54. (42) в ТЗ колонку с _заголовком_ FormEx_ПланРаскраски
    При заполнеении/изменении ТЗ - туда пиши строку цветов.

    Ответы: (55)
  55. вывод куда??? в тз??? так у тебя фокус сбивается...не???

    Ответы: (55)
  56. (54) Чаво? В отдельное окошко....
    (53) Да нету изменения. Есть клик или перемещение по ТЗ.

    Ответы: (56) (58)
  57. (55) ты короче в свойствах таблицы в строке формул процедуры местами поменяй...

    Ответы: (57)
  58. (56) Только по двойному клику.

  59. (55)В плане раскраски ты можешь показывать цвета текста и фона как для обычной строки, так и для активной - той, на которой стоит курсор.
    зы. либо я нихрена не понял задачу

    Ответы: (59)
  60. (58) Скажи, пожалуйста, как? Задачу понял.

    Ответы: (62)
  61. честно не знаю как таким образом сделать по одному клику...знаю только через вызов процедуры с текста на форме...я так выпадающие меенюшки на тз делал...

    Ответы: (61)
  62. (60) А с текста не работает....

  63. (59) чтобы при установке курсора на любую колонку подсвечивалась вся строка (все колонки) целиком

    Ответы: (63)
  64. (62) ДА!!!!!!!!!!!
    Я уже нашла - BRUSH_S.
    А где пихать надо?

    Ответы: (65)
  65. Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0)
    	
    	Возврат Макс(0, Синий) * 65536 + Макс(0, Зеленый) * 256 + Макс(0, Красный);
    
    КонецФункции	// ПолучитьЦвет
    
    Функция РаскраситьСтроку(гТабВыборка)
    
    	Возврат "BRUSH_S[" + ПолучитьЦвет(255, 255, 153) + "]";
    	
    КонецФункции	// РаскраситьСтроку
    
    //******************************************************************************
    Процедура ПриОткрытии() 
    
    	// определим каталог для сохранения файла
    	мГод 				= Строка(ДатаГод(ДатаОкончания));
    	КаталогДляЗаписи	= СокрЛП("\\Manager2\Документы для Светы\" + мГод + "\Документы\"); 
    
    	гТабВыборка.НоваяКолонка("Раскраска"	,"Строка",   ,  ,"FormEx_ПланРаскраски");
    
    	гТабВыборка.НоваяКолонка("Пометка"		,"Число" ,  4, 0,""			    	, 4);
    	
    	гТабВыборка.НоваяКолонка("Дата"			,"Дата"  , 	 ,  , 				    ,); 
    	гТабВыборка.НоваяКолонка("Документ"		, 		 , 	 ,  , "Документ" 	    , 36); 
    	гТабВыборка.НоваяКолонка("Номер"		,"Номер" , 	 ,  , 				    , 8); 
    	гТабВыборка.НоваяКолонка("Сумма"		,"Число" , 20, 2, "Сумма"		    ,);
    	гТабВыборка.НоваяКолонка("Контрагент"	, 		 , 	 ,  , "Контрагент"	    , 45); 
    	
    	
    	гТабВыборка.НоваяКолонка("Услуги"		,"Число" ,  4, 0, "Услуги" 		    , 10);
    	гТабВыборка.НоваяКолонка("Себестоимость","Число" , 20, 2, "Себестоим." 	    ,);
    	гТабВыборка.НоваяКолонка("СуммаБезНДС"	,"Число" , 20, 2, "Сумма (без НДС)" ,);
    	гТабВыборка.НоваяКолонка("Ссылка"		, 		 ,   ,  , "Документ"	    ,);
    	
    	//гТабВыборка.ВидимостьКолонки();
    	гТабВыборка.ВыводитьПиктограммы("Пометка", 2);       
    	гТабВыборка.ВыводитьПиктограммы("Услуги", 4);
    	гТабВыборка.ВидимостьКолонки("Раскраска, Ссылка", 0);
    	
    	// процесс записи
    	Форма.РамкаЗаписиДокументов.Видимость(0);
    	Форма.БегунокПрогрессБар.Видимость(0);
    	Форма.БегунокПроценты.Видимость(0);
    	
    	гТабВыборка.Раскраска = РаскраситьСтроку(гТабВыборка);
    	
    КонецПроцедуры	// ПриОткрытии 
    
    Процедура ПослеОткрытия()
    
    	ФормаРасш = СоздатьОбъект("РасширениеФормы");
    	ФормаРасш.РаскрашиватьТаблицу("гТабВыборка");
    	
    	мСервис = СоздатьОбъект("Сервис");
    	мСервис.ВключитьРаскраскуТаблиц();
    	мСервис.ИспользоватьПланРаскраски(1);
    
    КонецПроцедуры // ПослеОткрытия
    
  66. (63) Где ТЗ заполняешь, там и пихай.

    Ответы: (66)
  67. (65) То есть не в ПриОткрытии писать гТабВыборка.Раскраска = РаскраситьСтроку(гТабВыборка);
    а в заполнении?

    Ответы: (67)
  68. (66) У тебя раскраска индивидуальна для каждой строки (зависит от содержания строки), и определяется планом раскраски.
    другое дело, что в твоем конкретном случае все индивидуальные раскраски одинаковы.

    Ответы: (68)
  69. (67) ГЕНИЙ!!!!!!!!!!! Я тебя целую в обе щечки! [smile=:D] Получилось! Огромное спасибо!

    Ответы: (70)
  70. "читайте документацию, и вам воздастся..."©

    Ответы: (71) (73)
  71. (68)я не гений. я просто читаю доки.
    Помнищь анекдот про программиста и часы?

  72. (69) дык я сразу так и сказал )

    Ответы: (72) (73)
  73. (71)хы. чойто еще один анекдот вспомнил:
    Если бы я не стал программистом - я, наверное, стал бы хирургом : люблю поковыряться во всякой [...] непонятной.©

    Ответы: (73)
  74. (69) А я не нашла в документации, куда пихать вызов раскраски [smile=:/]
    (71) Не примазывайся. Тебя я тоже целую в обе щечки - за классный поиск по форуму. [smile=^_^]
    (72) Вот никогда не мечтала быть врачом. Я до сих пор на рынке мясо покупать не могу - плохо становиться от запаха. Да, и химию не очень люблю. А вот следаком стать мечтала, класса до 6-7. Но потом - увидела компьютер. Дали поиграться в тетрис. Увидела, как пишут "программу". И ....

    Ответы: (74)
  75. (73) у меня "третий папа" был ментом. И в свое время учился в школе милиции. а я был очень любознательным, и дофига читал. в том числе и его учебники. поэтому криминалистику, уголовное право,процессуальные вещи я знал лучше него :-)
    Отпечатки я и сейчас запросто могу снять и - с некоторым трудом - классифицировать и написать формулу для запроса в ИЦ. :-) Интересно было.
    хотя следаком стать не хотел.

    Ответы: (75)
  76. (74) Ну, я запоем читала Конан Дойля, Агату Кристи. Когда закончились - перешла на наши советские детективы. Ну, и затянуло [smile=:D]
    Не пожалела ни разу, что передумала - страны той нет. А сегодня - никто не парится, того посадили или нет. "Упла спиной на нож. 17 раз. Самоубийство" (С)

  77. Масянька Не примазывайся.

    и в мыслях не было! :) одну лишь правду голую вещаю

  78. О! У меня в таблице две колонки с пиктограммами. Они не красятся. Так и должно быть?

    Ответы: (78)
  79. (77) скорее всего

    Ответы: (79)
  80. (78) Ладно. И так красиво. [smile=:D]

    Ответы: (80)
  81. (79) молодец! )

или зарегистрируйтесь чтобы ответить!