![]() |
![]() |
![]() |
|
Событие "ПриСменеСтраницы" в управляемой форме | ☑ | ||
---|---|---|---|---|
0
LordCMEPTb
23.04.14
✎
11:25
|
Доброго дня!
Интересует вопрос, какой код позволить активировать событие "ПриСменеСтраницы" в управляемой форме при программной смене страницы? Небольшая обработка: http://yadi.sk/d/Iaq1KbjTN3nnb |
|||
1
Wobland
23.04.14
✎
11:26
|
sendkeys. событие - это событие
|
|||
2
LordCMEPTb
23.04.14
✎
11:29
|
(1) Можно уточнить, что имелось ввиду и как это применимо к 1С?
|
|||
3
Wobland
23.04.14
✎
11:39
|
я уж не помню в точности те слова, которые мне на 2м курсе рассказывали.. чтобы произошло событие СменаСтраницы, нужно таки сменить сраницу
|
|||
4
Wobland
23.04.14
✎
11:39
|
+(3) интерактивно
|
|||
5
LordCMEPTb
23.04.14
✎
11:43
|
(4) Интерактивно менять страницу не получится, ибо закладки скрыты по техническим причинам. Почему-то мне кажется, что для управлением отображением реквизитов формы лучше сделать переключение страниц, чем пересоздание всех реквизитов и элементов.
(3) А хотелось бы увидеть код для программной смены страницы, при котором бы выполнилась процедура "ПриСменеСтраницы"... |
|||
6
Адский плющ
23.04.14
✎
11:45
|
А самому вызвать обработку при смене не судьба?
|
|||
7
Defender aka LINN
23.04.14
✎
11:46
|
(0) Примерно такой:
|
|||
8
Wobland
23.04.14
✎
11:48
|
(5) процедуры не умеешь вызывать?
|
|||
9
LordCMEPTb
23.04.14
✎
11:49
|
Конечно же судьба, вот только зачем существует событие для страниц управляемой формы "ПриСменеСтраницы", которое, судя по описанию из спинтакс-помощника, возникает при переключении с одной страницы на другую?
(7) А без костыльно-ориентированного программирования не получится? |
|||
10
Wobland
23.04.14
✎
11:50
|
(9) внезапно оно существует для возможности что-то сделать при переключении с одной страницы на другую
|
|||
11
LordCMEPTb
23.04.14
✎
11:50
|
(10) Под какой платформой?
|
|||
12
Адский плющ
23.04.14
✎
11:50
|
(9) События для пользователей, а не для шаловливых кодерских ручонок. Вынеси обработку при смене в отдельную процедуру и её вызывай.
|
|||
13
Wobland
23.04.14
✎
11:51
|
(11) за 8.0 не скажу
|
|||
14
LordCMEPTb
23.04.14
✎
11:51
|
(12) Тогда почему в обычном приложении работает это событие как при ручной смене страниц, так и при программной?
|
|||
15
Wobland
23.04.14
✎
11:52
|
(14) а всё потому, что кто-то врёт
|
|||
16
Defender aka LINN
23.04.14
✎
11:52
|
(9) В чом костыль-то? Событие возникает при ИНТЕРАКТИВНОЙ смене страницы, чтобы мог отработать некий код. Если программист меняет страницу программно, то ему и решать, какой код должен отработать, не факт, что целиком весь обработчик.
Как же одинэснегов всегда поражает необходимость в языке программирования писать код... |
|||
17
Адский плющ
23.04.14
✎
11:52
|
(14) В обычном приложении много ещё чего через заднее место.
|
|||
18
LordCMEPTb
23.04.14
✎
11:56
|
(16) Костыль в том, что в синтакс-помощнике не указано, что данное событие вызывается при ИНТЕРАКТИВНОЙ смене страницы, а для меня смена страницы - это когда была страница1, а стала страница2 и не важно, программно она была изменена или интерактивно...
А для решения, какой же код должен отработать, пишутся отдельные процедуры, а не вызываются события обработчиков. |
|||
19
Wobland
23.04.14
✎
11:57
|
(18) попахивает дублированием кода
|
|||
20
Defender aka LINN
23.04.14
✎
11:59
|
(18) "для решения, какой же код должен отработать, пишутся отдельные процедуры" - а видимость у тебя не из процедуры меняется, не? "а не вызываются события обработчиков." - а ты СОБЫТИЕ и не вызываешь. Ты будешь вызывать процедур-обработчик. Почуй разницу.
"в синтакс-помощнике не указано, что данное событие вызывается при ИНТЕРАКТИВНОЙ смене страницы" - программные действия не вызывают возникновения событий у элементов формы, есличо, так что писать это излишне. |
|||
21
Адский плющ
23.04.14
✎
12:01
|
Имхо, явно вызывать обработчик события не айс. Карма портится.
|
|||
22
Kalambur
23.04.14
✎
12:10
|
(21) да с самого начала было понятно что унего весь код через ..опу
|
|||
23
Defender aka LINN
23.04.14
✎
12:13
|
(21) А обосновать заявление можешь?
|
|||
24
LordCMEPTb
23.04.14
✎
12:14
|
(19) Почему же дублированием? Изначально пишем процедуру, которая должна выполнить определнную часть работы, а далее просто вызываем данную процедуру там, где требуется.
(20) В том-то и проблема, что события вызываются при действии с элементами формы, без разницы, программно на них воздействовали или интерактивно. В частности могу предложить взглянуть на еще одну обработку, в которой идет программная активация строки, однако событие "ПриАктивацииСтроки" почему-то отрабатывает. Ссылка на обработку: http://yadi.sk/d/Iaq1KbjTN3nnb |
|||
25
LordCMEPTb
23.04.14
✎
12:15
|
(22) Не могу согласиться, ведь исходников платформы 1С не видел, но, возможно, какие-то недоработки там есть
|
|||
26
DS
23.04.14
✎
12:18
|
(21) Ничем не объяснимая закомплексованность.
|
|||
27
Адский плющ
23.04.14
✎
12:18
|
(23) Не вопрос. Завтра встанет задача изменить поведение исключительно для интерактивной смены страницы.
|
|||
28
LordCMEPTb
23.04.14
✎
12:20
|
(27) Жаль огорчать, но как было сказано в (5) , нет возможности интерактивного переключения закладок, ибо страницы сделаны лишь для того, чтобы не мучать сервер при изменении определенных данных
|
|||
29
Defender aka LINN
23.04.14
✎
12:20
|
(27) И? Берешь и меняешь, в чем проблема-то?
|
|||
30
Адский плющ
23.04.14
✎
12:21
|
(28) Тогда вообще событие тут нах не нужно.
|
|||
31
Kalambur
23.04.14
✎
12:23
|
есть процедура которая отрабатывает некий код, вызывай её когда нужно и если нужно пихай в любые активации событий в которых она нужна, в чем проблема?
|
|||
32
Адский плющ
23.04.14
✎
12:23
|
(29) Чего меняешь? В смысле убираешь г*код с вызовом обработчика событий и делаешь нормально, как можно было сделать сразу?
|
|||
33
LordCMEPTb
23.04.14
✎
12:23
|
(30) Все может быть, однако вопрос в (0) задан немного не про вызов любой процедуры, а именно про активацию события...
|
|||
34
Defender aka LINN
23.04.14
✎
12:26
|
(32) Вы знаете, в нашей работе таки иногда и программировать приходится.
И я таки в упор не вижу, в чем заключается "говнокод вызова процедуры". Ну и - а куда надо было бы бежать в случае (27) если событие всегда вызывается? |
|||
35
Kalambur
23.04.14
✎
12:27
|
(33) какая на.. активация если не интерактивно?
|
|||
36
DS
23.04.14
✎
12:28
|
(33) Интерактивно происходит самоактивация, программно активировать необходимо явно - вызовом процедуры события. Что не ясно?
|
|||
37
LordCMEPTb
23.04.14
✎
12:30
|
(35) Программная, естественно.
(34) А бежать никуда не надо, просто нужно разрабатывать процедуры так, чтобы они вызывались там, где нужно. Почему нельзя создать общую процедуру (событие) для изменения общих параметров (как для программного, так и для интерактивного изменения) и процедуру для изменения реквизитов (только программное изменение), которую вызывать при программном изменении? |
|||
38
LordCMEPTb
23.04.14
✎
12:31
|
(36) Можно уточнить, что есть самоактивация?
|
|||
39
Адский плющ
23.04.14
✎
12:33
|
(34) ХЗ может я чо-то непонятно объясняю, попробую на пальцах.
Допустим, мы обработку полностью запихнули в обработчик события, а при программной смене страницы явно вызываем "ПриСменеСтраницы(Элемент, ..". Теперь пришла задача, чтобы когда пользователь переключал страницу программа выдавала предупреждение. А программно не выдавала. Если бы мы сначала сделали всё руками и вытащили обработку в отдельную процедуру, нам было бы достаточно допилить обработчик события. А так нужно всё перепиливать. |
|||
40
DS
23.04.14
✎
12:33
|
(38) Вызов процедуры интерактивным действием.
|
|||
41
1dvd
23.04.14
✎
12:35
|
мде...
Это не эска костылеориентированная, а топик-стартер |
|||
42
LordCMEPTb
23.04.14
✎
12:44
|
(39) Как костыльщик могу предложить решение:
При программной активации события записать в переменную формы значение НеВыдаватьПредупреждение, в событие "ПриАктивацииСтроки" перед выводом предупреждения проверять на соответствие значению, а в конце события обнулять значение. Ибо такую ситуацию придется моделировать, например, для события табличного поля "ПриАктивацииСтроки". (40) Рассмотренное выше событие табличного поля "ПриАктивацииСтроки" вызывается как при интерактивном выделении строки, так и при программном. |
|||
43
Адский плющ
23.04.14
✎
12:45
|
(42) Мсье знает толк в извращениях...
|
|||
44
LordCMEPTb
23.04.14
✎
12:46
|
(43) 1С учит изобретать и пользоваться костылями...
|
|||
45
Defender aka LINN
23.04.14
✎
13:42
|
(37) Дык покажи пальцем, кто тебе мешает это сделать?
|
|||
46
LordCMEPTb
23.04.14
✎
14:11
|
(45) Потерял нить разговора, на что показать пальцем?
|
|||
47
Defender aka LINN
23.04.14
✎
15:55
|
(46) "просто нужно разрабатывать процедуры так, чтобы они вызывались там, где нужно. Почему нельзя создать общую процедуру (событие) для изменения общих параметров (как для программного, так и для интерактивного изменения) и процедуру для изменения реквизитов (только программное изменение), которую вызывать при программном изменении?" - вот и я не пойму - почему нельзя, кто мешает?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |