|
|
|
ЗаписьЖурналаРегистрации(). Транзакционная запись - фейк? | ☑ | ||
|---|---|---|---|---|
|
0
fisher
21.05.11
✎
13:59
|
В подписке на событие "Перед записью" документа делаю ЗаписьЖурналаРегистрации(). Шестым параметром (РежимТранзакции) ставлю
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная Но при откате транзакции запись всё равно делается (да и при успешной транзакции колонки "Статус транзакции" и "Транзакция" в журнале остаются пустыми). Вразумите, если чего не догоняю... |
|||
|
1
forforumandspam
21.05.11
✎
14:25
|
Журнал Регистрации не относится к базе. Почему запись должна откатываться?
Синтаксис: ЗаписьЖурналаРегистрации Описание: Записывает событие в журнал регистрации. Предназначен для записи ДОПОЛНИТЕЛЬНЫХ событий, которые не записываются системой. Коли сам делаешь запись, сам откатываешь транзакцию, то и сам добавляй запись о неудачной транзакции. |
|||
|
2
iamnub
21.05.11
✎
14:55
|
(1)
Злой ты какой-то. |
|||
|
3
МегаБум
21.05.11
✎
15:49
|
(0) а если ты в транзакции на принтере напечатаешь, при откате транзакции бумага обратный путь проделать должна?
|
|||
|
4
fisher
21.05.11
✎
17:13
|
Ок. Если все такие умные, объясните для чего предназначен шестой параметр метода ЗаписьЖурналаРегистрации(), который называется "РежимТранзакции". И в каких случаях и для чего его нужно использовать.
|
|||
|
5
fisher
21.05.11
✎
17:26
|
И заодно объясните, если всё так намертво привязано к базе, почему 1С сама не пишет фейковые записи в ЖР при откате.
|
|||
|
6
forforumandspam
21.05.11
✎
18:58
|
(0) Специально проверил.
НачатьТранзакцию(); Спр = Справочники.<Имя>.СоздатьЭлемент(); ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Информация, Спр.Метаданные(), "Данные", "Комментарий", РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная); Спр.Записать(); ЗафиксироватьТранзакцию(); В модуле объекта справочника в процедуре ПередЗаписью идёт проверка на пустые реквизиты. Процедура изменяет Отказ=Истина и ЖР пишет "Статус транзакции" = Отменена. А теперь ты напиши, где накосячил. |
|||
|
7
fisher
23.05.11
✎
10:50
|
(6) Всё тоже самое, только в подписке на событие перед записью документа
Процедура МойОбщийМодуль_ПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт ЗаписьЖурналаРегистрации( ОписаниеСобытияДокумента(Источник, РежимЗаписи, РежимПроведения), УровеньЖурналаРегистрации.Предупреждение, Источник.Метаданные(), Источник, Строка(Источник), РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная ); КонецПроцедуры |
|||
|
8
forforumandspam
23.05.11
✎
11:07
|
(7) А почему общий модуль? КАК "ЗаписьЖурналаРегистрации" узнает, прошла транзакция или нет?
|
|||
|
9
fisher
23.05.11
✎
11:11
|
(8) А где еще должен находиться обработчик подписки на событие? И какие могут быть отличия в механизме определения результата текущей транзакции? КАК "ЗаписьЖурналаТранзакции" в твоем случае узнала? Вот точно также.
|
|||
|
10
Рыжий Лис
23.05.11
✎
11:23
|
ПередЗаписью не транзакционное событие.
|
|||
|
11
fisher
23.05.11
✎
11:33
|
(10) В качестве ликбеза и апа: событие ПередЗаписью есть у объекта и у расширения формы объекта. Событие расширения формы - перед транзакцией записи. А событие объекта - уже в транзакции. На будущее. На глаз определить в транзакции событие или нет - очень легко. Если в параметрах события присутствует Отказ - значит оно транзакционное.
|
|||
|
12
forforumandspam
23.05.11
✎
11:38
|
(11) Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) - тоже транзакция?
|
|||
|
13
fisher
23.05.11
✎
11:43
|
(12) Уел. А по существу?
|
|||
|
14
hhhh
23.05.11
✎
11:43
|
(11) событие объекта - тоже НЕ в транзакции!!
|
|||
|
15
forforumandspam
23.05.11
✎
11:46
|
(13) А чем тебя не устраивает стандартная запись в ЖР?
|
|||
|
16
73
23.05.11
✎
11:46
|
(14) В транзакции.
СП: ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ПередЗаписью (BeforeWrite) Синтаксис: ПередЗаписью(<Отказ>, <Режим записи>, <Режим проведения>) Параметры: <Отказ> Тип: Булево. Признак отказа от записи документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись документа выполнена не будет. Значение по умолчанию: Ложь <Режим записи> Тип: РежимЗаписиДокумента. В параметр передается текущий режим записи документа. Позволяет определить в теле процедуры режим записи. Изменение значения параметра позволяет изменить режим записи. <Режим проведения> Тип: РежимПроведенияДокумента. В данный параметр передается текущий режим проведения. Изменение значения параметра позволяет изменить режим проведения. Описание: Возникает перед выполнением записи объекта. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи документа. -------------------------------------------------------------------------------- |
|||
|
17
hhhh
23.05.11
✎
11:49
|
(11) в ПередЗаписью в форме тоже присутствует отказ.
|
|||
|
18
fisher
23.05.11
✎
11:54
|
(17) Хм... В самом деле... Значит, это не показатель.
|
|||
|
19
fisher
23.05.11
✎
11:58
|
Короче. По результатам изысканий для транзакций инициируемых неявно эта шняга не работает... Подписка или напрямую, перед записью или при записи - откат не определяется. Пытался явно оборачивать вложенной транзакцией - тоже до одного места.
Очень и очень жаль... |
|||
|
20
forforumandspam
23.05.11
✎
12:02
|
(19) Так зачем тебе это всё?
|
|||
|
21
fisher
23.05.11
✎
12:05
|
(20) Какая разница?
|
|||
|
22
forforumandspam
23.05.11
✎
12:07
|
(21) Да и нам какая разница, получиться у тебя или нет?
|
|||
|
23
fisher
23.05.11
✎
12:10
|
(22) Суть проблемы с моими целями не связана абсолютно. Вам, Николаю II, может и никакой разницы. А кому-то возможно интересно будет.
|
|||
|
24
fisher
23.05.11
✎
12:27
|
(6) Фигня какая-то...
В обработке начинаю транзакцию, перезаписываю элемент справочника, пишу в ЖР и явно откатываю транзакцию. Никакого эффекта. Записалось как так и надо, без всяких там "Отменена". Уверен, что со штатной записью ЖР не спутал? Какой релиз? |
|||
|
25
fisher
23.05.11
✎
13:34
|
Ап.
|
|||
|
26
fisher
24.05.11
✎
10:43
|
Up.
Есть слабая надежда, что я всё-таки что-то делаю не так. У меня этот шестой параметр не фунциклирует ни при каких условиях. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |