Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 07:18

Может ли быть у нескольких событий, которые в форме, один и тот же обработчик?

Автор друган, 06 фев 2017, 20:40

0 Пользователей и 1 гость просматривают эту тему.

друган

Друзья! В книжке Радченко "1С:ПРЕДПРИЯТИЕ 8.3 ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА ПРИМЕРЫ И ТИПОВЫЕ ПРИЕМЫ" однозначно сказано:

ЦитироватьСогласно стандартам разработки фирмы «1С» у каждого события должен быть свой обработчик.

Через несколько страниц также однозначно:
ЦитироватьТаким образом, любая процедура, расположенная в модуле формы, может быть назначена обработчиком любого события (или сразу нескольких событий)

То есть два противоречащих друг другу утверждения. Опыт показал, что верно второе утверждение. То есть у меня в форме были два реквизита и я повесил на них один обработчик события, который срабатывал бы при изменении обоих реквизитов (не обоих сразу, а одного или второго). Обработчик срабатывал.

Но уж больно явный ляп в книге (первое утверждение то есть). Быть может, я что не так понял? Спасибо, кто откликнется.

Tyts

При изменении реквизита на форме происходит событие - При изменении. Само событие ничего не делает, только оповещает о том что реквизит был изменён. Ты имеешь возможность повесить обработчик на событие(указать процедуру), который будет выполнятся по событию.

Допустим у тебя есть процедура которая сообщает о том что её вызвали, повесив процедуру на событие ПриИзменении двух разных реквизитов и теперь при изменении процедура будет вызываться и больше не на что не влияет.

друган

Цитата: Tyts от 07 фев 2017, 00:07
Допустим у тебя есть процедура которая сообщает о том что её вызвали, повесив процедуру на событие ПриИзменении двух разных реквизитов и теперь при изменении процедура будет вызываться и больше не на что не влияет.
Понятно, то есть процедура вешается на событие ПриИзменении одного реквизита и на событие ПриИзменении другого реквизита. Я рискну счесть, что мы имеем дело с ДВУМЯ РАЗНЫМИ событиями (потому, что хоть и называются они одинаково, но происходят при изменении разных реквизитов). Это понятно.

А как тогда быть с этим утверждением, авторы ошиблись?
Цитата: друган от 06 фев 2017, 20:40Согласно стандартам разработки фирмы «1С» у каждого события должен быть свой обработчик.

Fedor_Safonchik

Цитата: друган от 07 фев 2017, 00:15
Цитата: Tyts от 07 фев 2017, 00:07
Допустим у тебя есть процедура которая сообщает о том что её вызвали, повесив процедуру на событие ПриИзменении двух разных реквизитов и теперь при изменении процедура будет вызываться и больше не на что не влияет.
Понятно, то есть процедура вешается на событие ПриИзменении одного реквизита и на событие ПриИзменении другого реквизита. Я рискну счесть, что мы имеем дело с ДВУМЯ РАЗНЫМИ событиями (потому, что хоть и называются они одинаково, но происходят при изменении разных реквизитов). Это понятно.

А как тогда быть с этим утверждением, авторы ошиблись?
Цитата: друган от 06 фев 2017, 20:40Согласно стандартам разработки фирмы «1С» у каждого события должен быть свой обработчик.

Это согласно стандартам разработки фирмы "1С", а придерживаешься ты их или вешаешь одну процедуру на несколько событий - это лично твои проблемы)

друган

Цитата: Fedor_Safonchik от 07 фев 2017, 11:10Это согласно стандартам разработки фирмы "1С", а придерживаешься ты их или вешаешь одну процедуру на несколько событий - это лично твои проблемы)

Суть ясна, просто я привык, что вещи, обладающие подобным функционалом (а именно: в случае несоблюдения некоторых правил прога всё равно работает, но настоятельно рекомендуется эти правила всё же соблюдать для удобочитаемости, единообразия и т. д.) называются хорошим тоном, но никак не стандартом. Нестандартно (читай: неправильно) написанные проги просто не скомпилируются. Но это в других языках программирования.

Kironten

Цитата: друган от 07 фев 2017, 19:47
...называются хорошим тоном, но никак не стандартом. Нестандартно (читай: неправильно) написанные проги просто не скомпилируются. Но это в других языках программирования.
А вот влезу в полемику.
То, что вы имеете ввиду под фразой хороший тон - это просто напросто стандарт оформления кода. Причем для каждого языка программирования это может быть свой стандарт.
Посмотрите описание слова стандарт - грубо говоря это общепринятые нормы. Но это никак не значит, что отклонение от стандарта приведет к невозможности функционирования системы. Просто она будет считаться НЕСТАНДАРТНОЙ.
Переводя на простой язык: задница нужна, чтобы ср.ть. Но теме не менее гомосексуализм кое где процветает. И при этом у гомосеков руки не отваливаются при ходьбе и зрение не отключается на 10 минут когда они садятся поесть.


друган

Цитата: Kironten от 08 фев 2017, 10:23То, что вы имеете ввиду под фразой хороший тон - это просто напросто стандарт оформления кода. Причем для каждого языка программирования это может быть свой стандарт.
после фразы "просто-напросто" я ожидаю что-то, что проясняет ситуацию. Итак, "стандарт оформления языка". Гм, вот не проясняет ситуацию вообще. Так, например, для языка C/C++ такого понятия нет. Просто нет. Зато есть, "хороший тон" и "стандарт языка", от чего, я собсно, и отталкивался, пытаясь применить эти понятия к встроенному языку 1С.



Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск