![]() |
![]() |
![]() |
|
Как узнать какая строка выбрана в ТЧ документа 🠗 (Волшебник 05.07.2010 11:06) |
☑ | ||
---|---|---|---|---|
0
Domovoi
04.07.10
✎
23:37
|
При нажатии на строку как узнать что она выбрана?
|
|||
1
Cthulhu
04.07.10
✎
23:43
|
текст на морду, в формулу "НомерСтроки" попробуй.
|
|||
2
Злопчинский
04.07.10
✎
23:44
|
хм..
1. НомерСтроки - возвращает ту, на которой стоит курсор 2. ПриНачалеРедактирования посмотри |
|||
3
Domovoi
04.07.10
✎
23:49
|
(2)2)Не подходит.
Какой процесс отвечает за выбор строки? ПриВыбореСтроки() - не работает Вообщем я хочу чтоб при нажатии на строку она выделялась цветом(допустим зеленым) |
|||
4
Рэйв
04.07.10
✎
23:50
|
(3)Сейчас тебе комрады посоветуют формекс:)
|
|||
5
Domovoi
04.07.10
✎
23:51
|
(4)Так я и так его использую
|
|||
6
Рэйв
04.07.10
✎
23:51
|
(5)Тогда тебе комрады посоветуют 1С++ :)))
|
|||
7
Cthulhu
04.07.10
✎
23:52
|
(2): оно и надо, "хм.."
|
|||
8
Злопчинский
04.07.10
✎
23:53
|
(4) грузишь Formex? вставляешь колонку текстовую невидимую в ней
пишешь типа BRUSH[0x6666FF] - все колонки что справа - подкрашиваются, в скачиваемом зипе есть пример конфиги, также на Исе есть пример доработанной этой конфиги |
|||
9
Рэйв
04.07.10
✎
23:53
|
(8)Ну вот:)
|
|||
10
Cthulhu
04.07.10
✎
23:55
|
(9): ну не 1с++ же, что "ну вот"?..
|
|||
11
Domovoi
04.07.10
✎
23:55
|
В ТЧ есть колонка с формулой Раскрасить() и СтрГруппа где напротив названия группы написано "гр";
Функция Раскрасить() Если Строка(СтрГруппа) = "гр" Тогда Возврат "BRUSH["+ПолучитьЦвет(255,255,100)+"]"; КонецЕсли; Если "Сдесь должно быть условие которое определяет что данная срока является выбранной" Тогда Возврат "BRUSH["+ПолучитьЦвет(255,0,0)+"]"; КонецЕсли; КонецФункции Процедура ПослеОткрытия() ФормаРасш = СоздатьОбъект("РасширениеФормы"); ФормаРасш.РаскрашиватьТаблицу("МногострочнаяЧасть"); КонецПроцедуры |
|||
12
Рэйв
04.07.10
✎
23:56
|
(10)Это я про предложение формекс:)
|
|||
13
Domovoi
04.07.10
✎
23:58
|
Так что нельзя никак определить?
|
|||
14
Cthulhu
04.07.10
✎
23:58
|
(12): хреново читаешь, у него уже есть формекс.
(11),(13): блин, заставляешь людей вместо тебя в отладчи к лезть? |
|||
15
Рэйв
04.07.10
✎
23:59
|
(14)Я просто чказал, что ему предложат :)
|
|||
16
Рэйв
04.07.10
✎
23:59
|
*сказал
|
|||
17
Domovoi
05.07.10
✎
00:06
|
Да НомерСтроки показывает выбранную строку, вот только каким процессом записать его в переменную?:). (При раскраске перебираются все строки поэтому НомерСтроки собъется.)
|
|||
18
Злопчинский
05.07.10
✎
00:09
|
ну тут уже мозг включить надо...
и кардинально забить на ПолучитьЦвет - юзать Hex-кодировку |
|||
19
Domovoi
05.07.10
✎
00:22
|
Hex-кодировку - это 0x6666FF. Если да, то почему ее?
|
|||
20
Злопчинский
05.07.10
✎
00:23
|
можно и не ее - но тогда либо функцию для пересчета вызывать либо впрямую писать занчение десятичное типа 1634598
|
|||
21
Domovoi
05.07.10
✎
00:46
|
Все наше ответ на вопрос)
|
|||
22
Domovoi
05.07.10
✎
00:46
|
*нашел
|
|||
23
Cthulhu
05.07.10
✎
00:57
|
(22): колись
|
|||
24
Domovoi
05.07.10
✎
01:03
|
Ну конешно изощренный метод.
Вобщем в Formex есть ПриНажатииПравойКнопки() (так же придется использовать при нажатии клавиатуры в моем случае) и буду получать Процедура ПриНажатииПравойКнопки() АктивнаяСтрока = НомерСроки; КонецПроцедуры Функция Раскрасить() Если Строка(СтрГруппа) = "гр" Тогда Возврат "BRUSH["+ПолучитьЦвет(255,255,100)+"]"; КонецЕсли; Если АктивнаяСтрока = НомерСроки Тогда Возврат "BRUSH["+ПолучитьЦвет(255,0,0)+"]"; КонецЕсли; КонецФункции |
|||
25
Злопчинский
05.07.10
✎
01:04
|
эх! при хождении клавишами курсором - не отработает...
|
|||
26
Domovoi
05.07.10
✎
01:06
|
+(24) Только не правой а левой.
(25)Работает |
|||
27
Злопчинский
05.07.10
✎
01:07
|
интересно, как ты при двигании клавишами курсороа мудешь работать с АктивнаяСтрока
|
|||
28
Domovoi
05.07.10
✎
01:11
|
(27)А мне все равно какая клавиша нажимается.
АктивнаяСтрока = НомерСтроки а потом перерисовать и все. Перерисовка особо не нагружает комп так что лишние разы мешать не будут. |
|||
29
Domovoi
05.07.10
✎
01:12
|
+(28)Хотя это недостаток, но влом отслеживать все)
|
|||
30
Cthulhu
05.07.10
✎
02:08
|
штатно выходит никак, жаль.
ну или не нашел пока как. зарраза формула текстового реквизита на морде отрабатывает перед(!) сменой строки, и там Номерстроки - "бывший", при том, что в формуле текстовой колонки НомерСтроки - текущий, сиречь новый. и формула текстовой колонки отрабатывает по всем строками при обновлении формы только (стохастически - при изменении размеров окна), а если нет тотального обновления формы - то только в текущей строке (на которую переключаешься). |
|||
31
Злопчинский
05.07.10
✎
02:41
|
чего-йто у вас криво гдетл.. у мну вроде все работало...
|
|||
32
smaharbA
05.07.10
✎
06:38
|
извините но это ипануться !
|
|||
33
smaharbA
05.07.10
✎
06:39
|
(30) ну да, он конечно, он да
и как это полное наименование номенклатуры в ТЧ под ней кажет не предидущее - ума не приложу |
|||
34
Vippi
05.07.10
✎
06:53
|
(0) Если уж пользуешься FormEx, то хоть доу до конца дочитывай.
В частности про BRUSH_S |
|||
35
Vippi
05.07.10
✎
06:53
|
доу=доку
|
|||
36
Domovoi
05.07.10
✎
09:34
|
(30)Мда. Вчер была только идея, а сегодня проверил косяк с раскраской. Тогда получается нельзя сделать, чтоб при выборе строки, она выделялась цветом, или 1с++ пора начинать изучать?:)
|
|||
37
Domovoi
05.07.10
✎
09:43
|
Прорисовка получается раньше чем нажатие кнопки)
|
|||
38
Ёпрст
гуру
05.07.10
✎
09:43
|
(36) можно.
|
|||
39
Domovoi
05.07.10
✎
09:44
|
(38)А как?
|
|||
40
Ёпрст
гуру
05.07.10
✎
09:46
|
(39) нужно красить текущую строку, или что?
|
|||
41
Domovoi
05.07.10
✎
09:47
|
(40)да
|
|||
42
Domovoi
05.07.10
✎
09:48
|
Может я невниметельно читал, а модно запустить раскраску в определенный момент?
|
|||
43
Domovoi
05.07.10
✎
09:48
|
*можно
|
|||
44
Ёпрст
гуру
05.07.10
✎
09:52
|
(41) текстовая колонка с формулой "(BRUSH_S[255])" и заголовком
FormEx_ПланРаскраски и всё.. Ну и выборочную расскраску включить.. И не надо там ничего ловить. |
|||
45
Ёпрст
гуру
05.07.10
✎
09:53
|
+44 никаких там НомЕрСтроки и прочих перехватов клавишь..
|
|||
46
Domovoi
05.07.10
✎
09:59
|
(44)Выборочная раскраска - это ВключитьРаскраскуТаблиц?
|
|||
47
Ёпрст
гуру
05.07.10
✎
10:02
|
(46) нужно ИспользоватьПланРаскраски в 1 заточить
|
|||
48
Domovoi
05.07.10
✎
10:13
|
(47)Хмм что-то в справке ничего не нашел про эту команду. А куда ее вставлять? Я вставил в ПослеОткрытия().
Сервис = СоздатьОбъект("Сервис"); Сервис.ВключитьРаскраскуТаблиц(); Сервис.ИспользоватьПланРаскраски(1); Ничего не происходит,точнее старая раскраска не работает, а так щелкаю и ничего. |
|||
49
Ёпрст
гуру
05.07.10
✎
10:25
|
(48) Не написано ?!!
СП читать не пробовал ? :) Заголовок у текстовой колонки задал, вот такой : FormEx_ПланРаскраски ЗЫ: а старая и не будет работать, ты же новый план расскраски включил. |
|||
50
Domovoi
05.07.10
✎
10:34
|
(49)Сп это FormEx.chm? Не нашел там. Заголовок задал FormEx_ПланРаскраски поставил перед всеми строками.
|
|||
51
Ёпрст
гуру
05.07.10
✎
10:36
|
(50) и там тоже есть и в синтаксисе помошнике и в *.doc, АЛьф везде постарался..
разве что в питере на заборе не пишет, что есть новый план расскраски. И колонка с этим заголовком может располагаться где угодно. |
|||
52
Vippi
05.07.10
✎
10:45
|
(51) Забил пацану голову.
Для BRUSH_S новый план раскраски не нужен. Для BRUSH_C нужен. |
|||
53
Ёпрст
гуру
05.07.10
✎
10:48
|
(52) да один хрен доку никто не читает..
:) |
|||
54
Domovoi
05.07.10
✎
10:50
|
В упор не вижу "ИспользоватьПланРаскраски" ни в доке, ни в FormEx.chm
|
|||
55
Ёпрст
гуру
05.07.10
✎
10:50
|
Хотя, красивее так, (BRUSH_C[255])(BRUSH_S[255]) делать,тут согласен..
|
|||
56
Ёпрст
гуру
05.07.10
✎
10:52
|
(54) в СП почитай.
|
|||
57
Domovoi
05.07.10
✎
10:57
|
СП (-это справка?) где взять?
|
|||
58
Ёпрст
гуру
05.07.10
✎
10:59
|
(57) СП -это синтаксис помощник, он же мужик в кепке в пофигураторе..
formex.als кинь в BIN .. и читай в пофигураторе. |
|||
59
Domovoi
05.07.10
✎
11:08
|
(58)Скинул. перезапустил конфигуратор выдает только стандартную справку, может еще чтото нада поменять или закинуть?
|
|||
60
Ёпрст
гуру
05.07.10
✎
11:29
|
(59) ничего не надо.. чего, в СП нет ни одного метода формекса ?
Нажми обновить в контекстном меню. |
|||
61
Domovoi
05.07.10
✎
11:31
|
Процедура ПриОткрытии()
ФормаРасш = СоздатьОбъект("РасширениеФормы"); ФормаРасш.РаскрашиватьТаблицу("МногострочнаяЧасть"); Сервис = СоздатьОбъект("Сервис"); Сервис.ВключитьРаскраскуТаблиц(); Сервис.ИспользоватьПланРаскраски(1); КонецПроцедуры Вставил в ТЧ в самое начало колонку, в заголовок написал FormEx_ПланРаскраски, в формулу "BRUSH_C[100]" и "BRUSH_S[100]" пробовал. Ничего не получается. (59)Есть. сейчас почитаю еще. |
|||
62
Domovoi
05.07.10
✎
11:43
|
Скобоски в BRUSH_S[100] не поставил)
|
|||
63
Ёпрст
гуру
05.07.10
✎
11:49
|
(62) ну и ? взлетело ?
:) |
|||
64
Domovoi
05.07.10
✎
11:51
|
Заработало. Вот только проблема. У меня в табличной части есть строки с наименованием групп они нада чтоб подсвечивались желтым. Но 2 раскраски нельзя вроде как чтб было, что делать?
|
|||
65
Domovoi
05.07.10
✎
11:56
|
Хе, сделал).Получилось что я хотел всем СПАСИБО!
|
|||
66
Ёпрст
гуру
05.07.10
✎
12:20
|
(64) да всё можно, функцию вешай и всё.
По условию красит группы и привет, ну и текущую строку целиком красит другим цветом. |
|||
67
Cthulhu
05.07.10
✎
13:28
|
(33): ты штоль по слогам читать попробуй. я нигде не говорил, что формула текста на морде не отрабатывает для текущей строки, но лишь об очередности(!!!) отрабатывания функций текстового реквизита таб.части и текста на морде.
Ок, попробую разжевать. сначала отрабатывает функция текстовой колонки таб.части, а потом функция текста на морде. при этом если переходишь со строки на строку - отрабатывает формула только(!) в той строке, на которую переключаешься (и только потом - формула текста на морде), именно поэтому при отработке формулы таб.части при сравнении с запомненным (с помощью формулы теста на морде) текущим номером строки в формуле текста таб.части нихрена не отловить такое совпадение. При этом, если форма обновляется (растягиваешь её) - то в довольно случайный момент (при растягивании) "вдруг" отрабатывают формулы текстов всех видимых строк и только потом формула текста на морде. Ну сам попробуй. В любой многострочный документ любой конфиги: 1) вставь в ТЧ тест с формулой ТекСтрокаТЧ() 2) на морду положи текст с формулой ЗапомнитьНомерТекСтроки() 3) в модуль формы перед первой процедурой/функцией добавь незатейливое: Перем БылоНомСтр; //============================================================================== Функция ТекСтрокаТЧ() Сообщить(ТекущееВремя()+"("+_GetPerformanceCounter() +"), попытка отлова тек.строки: функция текстового реквизита таб.части: Ном.строки="+НомерСтроки +" / функция текстового реквизита на морде = "+БылоНомСтр+"...","."); КонецФункции //ТекСтрокаТЧ //------------------------------------------------------------------------------ Функция ЗапомнитьНомерТекСтроки() БылоНомСтр=НомерСтроки; Сообщить(ТекущееВремя()+"("+_GetPerformanceCounter() +"): функция текстового реквизита на морде: Ном.строки="+БылоНомСтр,"i"); КонецФункции //ЗапомнитьНомерТекСтроки --- и "поиграйся". и как штатно(!) отловить в формуле текстового реквизита текущую строку (для раскрасить, для флажка, да все что угодно)???? я (пока?) не нашел. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |