Событие "ПриСменеСтраницы" в управляемой форме #706376


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