Имя: Пароль:
1C
1С v8
Отличия событий ПриЗаписи и ПередЗаписью справочника или документа
, ,
0 БукинГена
 
12.02.13
12:45
В чем принципиальное отличие?  В каких ситуациях используются?
1 Wobland
 
12.02.13
12:45
сначала перед, потом при. в перед элемент ещё не записан
2 Shurjk
 
12.02.13
12:46
(0) отличия на самом деле огромное, СП не судьба почитать?
3 БукинГена
 
12.02.13
12:51
Синтаксис:

ПриЗаписи(<Отказ>)
Параметры:

<Отказ>

Тип: Булево.
Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись выполнена не будет.
Значение по умолчанию: Ложь
Описание:

Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.

Я так и не понял вот эту: вызывается после записи объекта в базу данных, но до окончания транзакции записи.

Как это так? Транзакция или полностью записывает или не записывает. Если объект уже записан как это он может записыватся до окончания транзакции?
4 Maxus43
 
12.02.13
12:54
(3) вызывается внутри транзакции записи.
аналогично примерно:
НачатьТранзакцию()
СпрОбъект.записать();
//а вот тут это событие
ЗафиксироватьТранзакцию()
5 smitru
 
12.02.13
12:54
(3)
Если тебе нужно для проверки "отката" иметь для анализа актуальные данные ПЕРЕД записью используешь одно. Если хочешь проанализировать что получается если иметь изменённое состояние - то тогда уже ПРИ записи


Это же элементарно :-)
6 Галахад
 
гуру
12.02.13
12:54
Это значит, что объект уже можно прочитать из базы.
7 rozer76
 
12.02.13
12:54
ну например "призаписи" уже ссылка есть
8 Maxus43
 
12.02.13
12:55
>>Транзакция или полностью записывает или не записывает
нет, транзакция или выполняет ВСЕ действия, или ни одного. Запись - это одно из действий
9 Паланик
 
12.02.13
12:56
Если при записи тебе нужно что-то изменить в самом объекте - то нужно делать ПрередЗаписью, иначе у тебя появится модифицированность объекта и желание системы записать его еще раз...
10 БукинГена
 
12.02.13
13:01
(9) "самом объекте" - объект это уже объект программы в оперативной памяти, так? А ПриЗаписи уже объект записывается в базу данных(образуется ссылка) и здесь же оббъект программы уничтожается из кэша?
11 Maxus43
 
12.02.13
13:03
(10) только видена это "ссылка" только внутри транзакции, пока она не зафиксирована
12 БукинГена
 
12.02.13
13:06
(11) Т.е объект имеет УИД, но в базу данных не записан (т.е. в файл)?
13 Maxus43
 
12.02.13
13:15
(12) на время действия транзакции объект "изолируется", и этот "уид" ты вне транзакции не получишь
14 smitru
 
12.02.13
13:24
(13) э-э-э.. не путаешь "новые" и "старые" элементы?

Для новых (вновь созданных) - да Гуид "изолируется", но для "старых"  вполне доступен
15 Maxus43
 
12.02.13
13:25
(14) смысл обсуждения уже скатился к "Новым" элементам, так понятней
16 cw014
 
12.02.13
13:28
Отставить пиво, ребят отсыпьте немного того, что курите...
17 smitru
 
12.02.13
13:29
(15) дЫк нужно понимать суть.. ГУИД перестаёт быть фикцией, когда ссылка перестаёт быть "ПустойСсылкой". А это происходит именно когда "новый элемент" первый раз записывается в СУБД
18 Maxus43
 
12.02.13
13:33
да я то вроде понимаю, а как автору объяснить ещё?
19 smitru
 
12.02.13
15:24
(18) Автор задал вопрос - ответ дали практически сразу. Затем разговор улетел совсем иную сторону (в ГУИДы)..

А смысл грузить если человек ещё плохо разбирается в теме?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн