|
Какое соглашение вызова предпочесть | ☑ | ||
---|---|---|---|---|
0
jsmith
10.04.12
✎
20:44
|
Переписываю нетленку. Привожу в порядок логику событий формы.
Столкнулся с выбором. 1. Первый вариант (stdcall) Процедура ПриИзмененииРеквизита_А() ЗаписатьРеквизит_B(); КонецПроцедуры Процедура ЗаписатьРеквизит_B() // рутина ПриИзмененииРеквизита_B(); КонецПроцедуры 2. Второй вариант (cdecl) Процедура ПриИзмененииРеквизита_А() ЗаписатьРеквизит_B(); ПриИзмененииРеквизита_B(); КонецПроцедуры Процедура ЗаписатьРеквизит_B() // рутина КонецПроцедуры Что бы вы предпочли? |
|||
1
jsmith
10.04.12
✎
20:45
|
stdcall, вроде как, популярней
|
|||
2
НикДляЗапросов
10.04.12
✎
20:45
|
пофиг
|
|||
3
НикДляЗапросов
10.04.12
✎
20:46
|
может и не пофиг, но мне пофиг
|
|||
4
jsmith
10.04.12
✎
20:46
|
(2) понимаю, что пофиг, но, если бы пришлось выбрать, ткнул бы пальцем в первый попавшийся?
|
|||
5
НикДляЗапросов
10.04.12
✎
20:49
|
Не ну первый вроде както ближе
|
|||
6
jsmith
10.04.12
✎
20:49
|
(5) ок. я тоже так думаю
|
|||
7
Один С
10.04.12
✎
20:50
|
вот что за мода пошла беспричинно код по процедурам разбрасывать.
ведь эта процедура все равно только из одного места вызывается, так нет же, надо ж выебнуться.. |
|||
8
cViper
10.04.12
✎
20:52
|
я бы выбрал второй вариант.
ЗаписатьРеквизит_B() и ПриИзмененииРеквизита_B() 2 разных события, какой смысл вкладывать одно в другое? |
|||
9
cViper
10.04.12
✎
20:53
|
А если надо, то проще можно сделать так, как говорит (7)
|
|||
10
Ахиллес
10.04.12
✎
20:54
|
(7) Всегда вроде так было. У каждого обработчика ровно одна процедура и вызывается она ровно из одного места (события). А какой смысл всё валить в кучу?
|
|||
11
jsmith
10.04.12
✎
20:54
|
(9) это пять! )
|
|||
12
cViper
10.04.12
✎
20:55
|
(11) Сам толком не понял что написал )))
|
|||
13
jsmith
10.04.12
✎
20:57
|
просто боюсь, подводные камни какие могут быть
|
|||
14
Один С
10.04.12
✎
20:57
|
(10) смысл в том, что потом другие программисты собирают эти 18-этажные конструкции, и пытаются понять логику.
|
|||
15
Ахиллес
10.04.12
✎
20:59
|
(14) Наверно, я о чём то другом подумал, когда тебе отвечал. Явно ответил не на тот вопрос, который задали :-)
Всё, я домой, а то башка уж не варит. |
|||
16
cViper
10.04.12
✎
21:00
|
ЗаписатьРеквизит_B() используется где-нибудь еще? если да, то мой выбор 1, если нет, то 2
|
|||
17
cViper
10.04.12
✎
21:02
|
(16) Надо идти спать, все перепутал. если да, то 2, если нет - 1
|
|||
18
cViper
10.04.12
✎
21:03
|
(16) я о ПриИзмененииРеквизита_B() говорил )))
|
|||
19
cViper
10.04.12
✎
21:03
|
почему здесь нет смайлов ?
|
|||
20
Один С
10.04.12
✎
21:04
|
сВайперу больше не наливать
|
|||
21
jsmith
10.04.12
✎
21:13
|
чёто хотел сказать, но запутался
|
|||
22
zak555
10.04.12
✎
21:17
|
(0) забудь ты про процедуры
используй функции ! |
|||
23
orefkov
10.04.12
✎
21:24
|
stdcall? cdecl? Понтануться красивыми непонятными словами решил?
А по сути - вариант 2. Другие точки вызова должны только записывать В, и совершенно не обязаны знать, что там должно быть при его изменении. |
|||
24
jsmith
10.04.12
✎
21:27
|
(23) понтануться - озвучил по факту
красивыми - ну я бы не сказал непонятными - у тебя монополия на системное программирование? учитывая твой солидный вес в этой области, серьёзно отнесусь к твоему варианту |
|||
25
jsmith
10.04.12
✎
21:28
|
хотя, если реквизит В меняется, то и при изменении должно срабатывать
|
|||
26
orefkov
10.04.12
✎
21:35
|
(24)
Сорри, в (23) перепутал номера, конечно же вариант 1 - вызов записать_в, а из него уже приизменении_в. |
|||
27
jsmith
10.04.12
✎
21:36
|
(26) спс. так и поступлю. если орефков говорит, значит так и надо
|
|||
28
zak555
10.04.12
✎
21:39
|
//запретить клиенту нажимать на реквизиты А и В
&НаКлиенте Процедура ПриИзмененииРеквизита_А() ПриИзмененииРеквизита_B(); КонецПроцедуры &НаКлиенте Процедура ПриИзмененииРеквизита_B() ПриИзмененииРеквизита_A(); КонецПроцедуры |
|||
29
jsmith
10.04.12
✎
21:41
|
(28) зато без вызовов сервера!
|
|||
30
zak555
10.04.12
✎
21:45
|
(29) про сервер ничего не сказано =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |