|
Транзакции. Не отменяет все действия | ☑ | ||
---|---|---|---|---|
0
Wefast
27.05.24
✎
15:51
|
Пишу:
НачатьТранзакцию(); Попытка Элементы.МойРеквизит.Видимость = истина; а = 1/0; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); КонецПопытки Все равно мой реквизит становится видимым. Разве не все что происходит в транзакции откатывается в случае ошибки внутри нее? Сейчас пишу так: Успех = истина; НачатьТранзакцию(); Попытка а = 1/0; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); Успех = Ложь; КонецПопытки Если Успех Тогда Элементы.МойРеквизит.Видимость = истина; КонецЕсли; |
|||
1
Волшебник
27.05.24
✎
15:37
|
Откатывается только запись в базу. Все остальные действия не являются частью транзакции.
|
|||
2
Волшебник
27.05.24
✎
15:38
|
И соблюдайте лесенку программного кода (отступы). Тут вам не fast...
|
|||
3
Timon1405
27.05.24
✎
15:42
|
https://its.1c.ru/db/v8std#content:783:hdoc
RTFM обработка исключений на совести разработчика Процедура ЗаписатьДанныеВИБ() НачатьТранзакцию(); Попытка ... // чтение или запись данных ДокументОбъект.Записать() ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ... // дополнительные действия по обработке исключения КонецПопытки; КонецПроцедуры |
|||
4
Wefast
27.05.24
✎
15:46
|
(2) каким образом тут делаются отступы? tab их не делает, не пробелами же их делать.
(1) (3) Понял, спасибо. (3) Для меня это выделенное предложение было не так понято. Там я думал как раз место для сообщения об ошибке, записи в журнал может чего то и т.п. |
|||
5
Ненавижу 1С
гуру
27.05.24
✎
15:47
|
(3) ради холливара, почему все-таки НачатьТранзакцию до попытки, а не внутри?
|
|||
6
Волшебник
27.05.24
✎
15:48
|
(4) Используйте тег <PRE> из панели оформления справа
|
|||
7
Wefast
27.05.24
✎
16:20
|
(5) 1с так советует
https://its.1c.ru/db/v8std/content/783/hdoc |
|||
8
Волшебник
27.05.24
✎
15:52
|
(7) в начале ссылок добавляйте https://
https://its.1c.ru/db/v8std/content/783/hdoc |
|||
9
Timon1405
27.05.24
✎
15:55
|
(5) можно не надо?) для холиваров есть старая статья на хабре https://habr.com/ru/articles/419715/
|
|||
10
Волшебник
27.05.24
✎
15:57
|
(5) Потому что внутри блока Исключение есть ОтменитьТранзакцию.
Кстати, надо бы её оформить в блок Если ТранзакцияАктивна() Тогда |
|||
11
Ненавижу 1С
гуру
27.05.24
✎
16:03
|
(10) к сожалению, я не понял доводов
|
|||
12
Ненавижу 1С
гуру
27.05.24
✎
16:05
|
(10) + (11) нашел https://habr.com/ru/articles/419715/#comment_20146648
спасибо |
|||
13
Волшебник
27.05.24
✎
16:15
|
(12) это какой язык? Похож на 1С, но не он
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |