Имя: Пароль:
1C
1С v8
Подписка на событие формы "ПередЗаписью" и на изменение реквизита.
0 Odavid
 
03.10.10
02:38
Известно, что подписки на события могут быть реализованы только на события, описанные в модуле объекта.
А какие варианты реазизации есть для событий формы (например, "ПередЗаписью") или для события изменения реквизита?
1 Armando
 
03.10.10
02:44
(0) Обработчики этих событий описываются непосредственно в форме, т.е. подписка, можно сказать, индивидуальная. Аналогии групповой подписки на события объекта не существует.
2 Odavid
 
03.10.10
02:50
(1) что значит индивидуальная? есть события, есть подписка на события :)
То, что подписка в 1С реализована в 1С на треть (как и многое остальное) - отнюдь не красит 1С :)
3 Sammo
 
03.10.10
08:11
Обращайтесь к разработчикам.

А так, насколько я понимаю - подписка - это на неинтерактивное действие.
4 skunk
 
03.10.10
08:15
(2)бросай курить всякую дурь ... неумение думать ой как карсит человека
5 Odavid
 
03.10.10
11:40
(4) вы, похоже, не понимаете, о чем вопрос.
6 Fragster
 
гуру
03.10.10
11:44
(0) перед записью - да, на интерактивное изменение реквизита - нет
(5) но прошел посвящение в одинесники.
7 Odavid
 
03.10.10
11:49
(60 ПередЗаписью - опять же если это событие в МодулеОбъекта, событие Формы - недоступно при подписке.
8 ОбычныйЧеловек
 
03.10.10
11:58
(5) это 86г этим в принципе все сказано.
(0) простой реализации (без того что бы курочить конфу) вроде как нету.

>> или для события изменения реквизита
Хотя бы одну процедуру(общую), в форме для этого прописать придется - иначе никак (имхо)
9 Sammo
 
03.10.10
12:07
Я не вполне уверен в правильности создания подписки на интерактивное событие в форме.
Несмотря на то, что приходилось решать подобную проблему (и не раз)
10 skunk
 
03.10.10
12:25
(5)я понимаю, что ты ничего не понимаешь ... и этого более чем достаточно ... говорю же бросай курить дурь ... учиться думать никогда не поздно
11 Odavid
 
03.10.10
12:41
(8) в том и дело, что >"Хотя бы одну процедуру(общую), в форме для этого прописать придется" - изначально не прописывается в типовых конфах, а менять что-либо в модулях формы - проблемы с обновлением.
> это 86г
- сам поражаюсь массовости этой проблемы ныне, и мне когда-то было 24, и вам.
(9) подписка на событие 1С - это просто сильно обрезанный аналог отлова события по GUID формы в других языках программирования. Там получаешь GUID формы - получаешь доступ к ней извне и отслеживаешь все её события. А нет GUID - нет и нормального реагирования на действия объектов.
Как узнать без залезания в модуль формы из глобального контекста, что форма открыта/изменены данные на ней? - никак, если реквизит, событие которого мы хотим отловить, не делает совершенно случайно каких-либо обращений к функциям/процедурам какого-либо общего модуля, процедуру которого как раз и можно "поставить" на подписку.
Зачем это нужно - смотрите предложение выше, где про обновление.
12 skunk
 
03.10.10
12:44
(11)полная жесть ... ты хоть чего понимаешь в этом мире?
13 Odavid
 
03.10.10
12:48
(12) вы по вопросу или просто так? Если по вопросу - придерживайтесь рамок (11), а не "в этом мире" из (12).
14 skunk
 
03.10.10
12:51
(13)извини у меня просто нет такой дури абы тупить так отбороно
15 Odavid
 
03.10.10
13:01
(14) кто-то ругает 1С за реализованные функции, я - обычно за нерелиализуемые из года в год, из десятилетия - в десятилетие, из 6 - в 7 - в 8-ку.
Почему и отношение к ней более критическое, нежели восхищенное.
16 Odavid
 
03.10.10
13:01
(15) + или абы как реализуемые, но громко называемые и пропиаренные.
17 skunk
 
03.10.10
13:02
(15)хорошо ... давай покажи про GIUD формы в других языках ... как и где это реализовано ... желательно с екземпелами
18 NcSteel
 
03.10.10
13:05
Не понимаю о чем спор , о среде 1С , так она позволяет 99% бизнес задач решить. Что еще надо и наку ?
19 Odavid
 
03.10.10
13:10
(18) даже в Бейсике можно получить GUID активной формы и отслеживать её действия в дальнейшем.
(18) - позволяет, если бизнес задачи "укладываются" в представление 1С-ников о структуре бизнес-задач. А если нет - то нет и расхваленой "гибкости" 1С.
Шаг влево или вправо - расстрел для 1С-ного программиста. Особенно, если поставленные задачи ограничены жестким сроком, без вариантов "думал неделю - а что если..., думал вторую - а может быть...".
20 skunk
 
03.10.10
13:15
(19)ты давай показывай ... 86-летнему ... как получить гуид формы и отслеживать события
21 Odavid
 
03.10.10
13:21
(20) т.е. это невозможно нигде, поэтому надо подрываться и искать код реализации в других языках? Оригинально :)
22 skunk
 
03.10.10
13:24
(21)нет я просто сижу и жду когда ты пересташь гнать туфту от незнания ... и начнешь показывать на пальцах свою крутизну
23 Odavid
 
03.10.10
13:27
(22) - только решения по данной теме предлагаю я один, в силу своего незнания.
24 skunk
 
03.10.10
13:30
(23)я не вижу что-бы что-то предлагал ... я вижу только один бред основваный на полном незнании
25 NcSteel
 
03.10.10
13:30
(19) Для чего нужно?
26 Худой
 
03.10.10
13:30
Интересно...интересно(взял попкорн)
27 Odavid
 
03.10.10
13:36
(19) например, нужно перехватывать изменение общего для всех данных нескольких десятков документов документов ревизита "Контрагент" без, понятное дело, кардинальной переделки такого количества документов, в силу обновляемости конфигурации (сама конфигурация - сборная солянка из трех типовых).
28 Odavid
 
03.10.10
13:37
(25) итак, ваши коллективные варианты?
29 Либерал
 
03.10.10
13:38
я не понял страданий
Оповестить()
ОбработкаОповещения()
не подходит??
30 skunk
 
03.10.10
13:39
(27)ты давай расскажи как это сделать на любом другом языке программирования
31 Odavid
 
03.10.10
14:28
(29) это опять же влезать в 38 обработок событий документов. Что можно сделать и без Оповещения - просто вписать ссылку на процедуру общего модуля.
32 Odavid
 
03.10.10
14:41
(29) это могло бы работать без вмешательства в формы, если бы 1С и её "партнеры" заранее побеспокоились внести ОбработкуОповещения в формы, или подобный механизм, позволяющий реагировать на изменение объектов формы без изменения её внутреннего кода.
33 NcSteel
 
03.10.10
14:46
(30) Что сказать ) у человека каша в голове.
34 NcSteel
 
03.10.10
14:48
(27) Так как документы разные то и одна и таже функция действия при изменении поля "Контрагент", который в общем случае для разных документов содержит разный тип и разный смысл, бессмыслен. Хотя если ты апологет Раруса и все любишь пихать в одну функцию то вперед .
35 Либерал
 
03.10.10
15:29
(31) ну да, просто процедура общего модуля

странная хотелка, ссылка на процедуру общего модуля видна в модуле формы, ты предлагаешь ее от формы отвязать и запихнуть куда то отдельно спрятать. разработчик должен либо о том помнить, либо оч долго искать концы таких "подписок".

да и вообще, так ты скоро начнешь ругаться "разработчики казлы, мне приходится программировать и все такое, могли бы сделать чтоб программа сама делала как я придумал без моего вмешательства"
36 Odavid
 
03.10.10
18:19
(35) как раз когда массово вносишь в разных местах вот такие мелкие изменения, которые сами по себе не несут нагрузку, а служат как технологическая основа основных изменений, и велика вероятность все потерять при очередном обновлении, особенно, когда обновление трех конфигураций, а не одной.
>"да и вообще, так ты скоро начнешь ругаться "разработчики казлы, мне приходится программировать и все такое, могли бы сделать чтоб программа сама делала как я придумал без моего вмешательства""
Это скорей заказчиков ругать начнешь.
(34) открою секрет - поле контрагент всегда несет в себе информацию-ссылку на контрагента и ничего более, хоть в РАРУСе, хоть в 1С-конфе, хоть у опытного Евгения Пупкина с infostart'а, написавшего свою конфу; соответственно, если нужно разделить контрагентов и менеджеров, или имеются разные наборы действий по проведению/записи к разным контрагентам вне зависимости от документа (здесь открою еще один секрет - не контрагент привязан к документу, а документ к контрагенту, поэтому если нужно выделить документы одного из контриков - их выделяют все, относящиеся к этому клиенту) - и возникают такие ситуации.
37 skunk
 
03.10.10
18:23
парень еще сопротивляется ... что сказать дурь у него отменная
38 Chai Nic
 
03.10.10
18:25
Автор темы прав. Было бы удобно, если бы была возможность глобального перехвата всех предопределенных действий. Но так сделали в 1с, что не сделали. Судьба.
39 Odavid
 
03.10.10
18:59
(38) увы, они многое сделали так, что не сделали, но зато усиленно раструбили, что "все как у столпов БД и учетных программ" :(