|
Отказ=Истина откатывает модификации в независимом регистре |
☑ |
0
AvlChe
13.05.20
✎
12:33
|
Добрый день! Не подскажет кто-нибудь, а то уже всю голову сломал:
Есть независимый, непериодический регистр сведений. Документ при проведении модифицирует запись в нём. При Отказ=Истина модификации, сделанные документом, откатываются. Почему?
Буквально вот такой код:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Запись = РегистрыСведений.артДанныеОПроведенииДокументов.СоздатьМенеджерЗаписи();
Запись.Объект = Ссылка;
Запись.Прочитать();
Запись.ДатаПервойПопыткиПроведения = ТекущаяДата();
Запись.ПервыйКтоПыталсяПровестиДокумент = ПараметрыСеанса.ТекущийПользователь;
Запись.Записать(Истина);
Отказ = Истина;
КонецПроцедуры
Ставлю брейкпоинт на строчке "Отказ = Истина", смотрю в регистр: "ПервыйКтоПыталсяПровестиДокумент" - заполнен. После выхода из процедуры - опять не заполнен! Изменения - откатились. Регистр - независимый. Что за чушь?
|
|
1
ДенисЧ
13.05.20
✎
12:34
|
Потому что транзакция откатывается. А с ней и все изменения, сделанные в БД.
|
|
2
AvlChe
13.05.20
✎
12:37
|
Круто. А обойти это можно как-нибудь? В отдельную транакцию завернуть код этот, или как?
|
|
3
AvlChe
13.05.20
✎
12:39
|
(1) Событий, связанных с записью, но происходящих до начала транзакции, нет никаких?
|
|
4
Галахад
гуру
13.05.20
✎
12:44
|
(2) Запусти фоновое задание.
|
|
5
runoff_runoff
13.05.20
✎
12:45
|
ПослеЗаписи
|
|
6
AvlChe
13.05.20
✎
12:48
|
(5) ПослеЗаписи - событие формы. У объектов его нет.
|
|
7
AvlChe
13.05.20
✎
12:49
|
(4) Отлично, попробую.
|
|
8
mistеr
13.05.20
✎
13:09
|
(2) Для аудита действий пользователей есть ЖР. Туда пишется вне транзакции.
|
|
9
fisher
13.05.20
✎
13:15
|
Фоновыми заданиями по каждой записи - как-то сурово.
Я бы в ЖР писал. А если нужно в БД - тогда отдельным бы регламентом переносил из ЖР в регистр.
|
|