|
Установка значения реквизита справочника в модуле объекта "ПриЗаписи"
| ☑ |
0
elian_hunter
04.09.15
✎
22:47
|
У справочника один реквизит типа булево.
В модуле объекта пишу обработчик:
Процедура ПриЗаписи(Отказ)
Реквизит1 = Истина;
КонецПроцедуры
Если открыть форму объекта и нажать кнопку "Записать и закрыть" - эффекта никакого. То есть Реквизит1 остаетеся в значении "Ложь".
Но если на форме нажать кнопку "Записать", то всё работает как надо!
ЭТО ПОЧЕМУ ТАК?
Почему при записи объекта такой алгоритм не даёт эффекта?
|
|
1
Armando
04.09.15
✎
22:53
|
Почитай описание, когда возникает событие "ПриЗаписи"
|
|
2
elian_hunter
04.09.15
✎
23:02
|
(1) ну а кроме "умников" есть нормальные люди?
|
|
3
elian_hunter
04.09.15
✎
23:03
|
(1) Событие возникает всегда. Отладчиком я ловлю отработку этой строки в любом случае, но в первом варианте это не даёт нужного эффекта.
|
|
4
Armando
04.09.15
✎
23:03
|
|
|
5
elian_hunter
04.09.15
✎
23:06
|
(4) вот теперь понял... спасибо
|
|
6
palsergeich
04.09.15
✎
23:07
|
ПРИзаписи - Транзакция еще идет, Объект уже записан в ИБ. Изменять реквизиты объекта в ПРИЗаписи - бесполезно, он сделан для другого.
Если хотите изменять реквизит в транзакции - делайте это в событии перед записью. Тогда объект еще не записан.
|
|
7
elian_hunter
04.09.15
✎
23:08
|
(6) Спасибо! Понял.
|
|
8
palsergeich
04.09.15
✎
23:26
|
Немного теории, на будущее пригодится.
У вас его кусок памяти с которым вы работаете - объект.
Событие ПередЗаписью Начата транзакция Запись еще нет. Все изменения внесенные в объект запишутся.
Событие ПриЗаписи - Кусок памяти УЖЕ записан в ИБ. Вы можете внести изменения в кусок памяти , но в ИБ они не попадут, потому что запись уже состоялась. и этот кусок памяти после события ПриЗаписи будет уничтожен.
В ПриЗаписи единственное что можно сделать с объектом - откатить транзакцию (отказ = Истина), те отменить запись.
|
|
9
palsergeich
04.09.15
✎
23:28
|
http://catalog.mista.ru/public/153748/ тут достаточно подробно все описано, рекомендую к прочтению.
|
|